如何在php中对查询结果进行排序?

时间:2009-06-03 23:59:31

标签: php mysql

我正在尝试将查询结果排序为数组。

我有以下查询。

"select s.*, a.* from students left join addresses as a";

它返回

s.id
s.name
a.id
a.student_id
a.address

我想将上面的结果变成带有s和键的数组。

array(
  "s"=>array("id"=>"value","name"=>"value")
  ,"a"=>array("id"=>"value","student_id"=>"value","address"=>"value)
)

我必须自己做功能还是有内部功能?

2 个答案:

答案 0 :(得分:1)

如果没有其他原因,您必须自己执行此操作,而不是查询结果中的PHP中无法识别表。您只能获得列名称。

答案 1 :(得分:1)

除了:在你当前的代码中,我相信如果你选择行作为关联数组,s.id将被a.id覆盖。

现在,谈到一种可能的方法......

返回结果的一个方面是丢失列所来自的表。如果您发现自己想对结果集进行后处理,也许您可​​以通过重命名每个列来对其进行别名:

$query = "SELECT
    s.id         AS s_id
    s.name       AS s_name
    a.id         AS a_id
    a.student_id AS a_student_id
    a.address    AS a_address
    ... ";

一旦你有了这个,你可以根据substr($ key,0,1)组织数据,并获得带有substr($ key,2)的基础列名。

一旦有了这些,你就可以在每一行内循环,以创建你想要使用的数据结构。