0

typeID typeName と Importance を含むタイプ テーブルがあります。重要度の列が高いほど、表示が速くなります。降順で返却

次に、ExpenseID、さまざまな経費、typeID、重要な経費テーブルがあります

経費 typeID 参照 typeID typeID

PHP では、それらをできるだけ効率的にグループ化しようとしているので、単一のデータ構造を使用してリストを反復処理できます。

考えていた

$type [The TypeID] [The Type Name or row indicator in other cases] 
[expense information here]

ただし、TypeID は順番に並べられていないため、無駄な操作が大量に発生します。

私はそれをできた$type[auto increment here][TypeID][The Type Name or row indicator in other cases] [expense information here]

ただし、これは$type[$row['typeID']]、経費情報を入力するときだけ行う能力が失われ、より多くの操作を行う必要があり、リコールのために typeID を取得するという問題が解決されないことを意味します

私は費用とタイプIDの間で内部結合を行うことができましたが、構造がそうであるように重複した情報がたくさんありますが、それはタイプ名を$type[incremntal][all information here]何度も何度も保存し、実際には使用可能であり、最適ではありませんこの時点で最適なオプションを探すには、タイトルを表示するかどうかを知るために、以前のタイプ ID と現在のタイプ ID を常に比較する必要があります。

繰り返しデータのない単一の構造を使用するものを思いつくことができますか?

他の何かが頭に浮かびました。テーブルの行を ID で検索し、その下に行を挿入するコードは何でしょうか? 今までそんなことしたことないのに…

4

2 に答える 2

0

わかりました

$type[$i][$typeID] = $typeID;
$type[$i][$name] = $typeName;
$type[$i][$j][] = expense information 

それらは重要度によってソートされているため、迅速な検索ルーチンだけで冗長データをゼロにできるようにする必要があります。

于 2013-05-12T21:27:47.477 に答える
0

mysql クエリ:

$q="select t.typeID, t.typeName, e.ID, e.name from type t left join 
    expense e on t.typeID = e.typeID";

phpコード:

$res=mysql_query($q);
while($r=mysql_fetch_assoc($res)){
   $exp[$r["typeID"]][] = $r;
}

これで、$exp配列には でグループ化されたすべての費用が含まれtypeIDます。必要に応じて、クエリにオプションの並べ替えを追加できます。

お役に立てれば。

于 2013-05-12T20:54:46.040 に答える