0

我有一个包含 typeID typeName 和 Importance 的类型表,重要性列越高,它出现的速度就越快。它以降序返回

然后我有一个费用表,其中包含 ExpenseID、各种费用、类型 ID、重要

费用 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 的问题

我可以在费用和 typeID 之间进行内部连接,但是我有一堆重复的信息,因为结构就是这样$type[incremntal][all information here],但这会一遍又一遍地存储类型名,尽管它实际上是可用的并且不是最佳的在这一点上寻找最佳选择还必须不断比较以前的类型 ID 和当前的类型 ID,以便知道我是否显示标题。

你能想出任何使用单一结构而没有重复数据的东西吗?

别的东西突然出现在我的脑海里。通过 id 查找表格行并在其下方插入一行的代码是什么?我以前从来没有做过这样的事...

4

2 回答 2

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 回答
0

好吧想通了

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

因为它们是按重要性排序的,所以它应该加快它的速度,并且只需要一个快速搜索例程就可以允许 0 个冗余数据。

于 2013-05-12T21:27:47.477 回答