将MySQL查询中的每个结果分配到唯一数组的最简单方法是什么?

时间:2011-05-09 19:20:41

标签: php mysql arrays unique

基本上我想在文档的其他位置调用这些变量,但我不确定最简单的方法是什么。例如,在我的具体情况下,我的查询是这样的:

     $query = "SELECT report,";
        $query.= "GROUP_CONCAT(DISTINCT analyst) AS analysts, ";
        $query.= "GROUP_CONCAT(DISTINCT region) AS regions, ";
        $query.= "GROUP_CONCAT(DISTINCT country) AS countries, ";
        $query.= "GROUP_CONCAT(DISTINCT topic) AS topics, ";
        $query.= "GROUP_CONCAT(DISTINCT date) AS dates, ";
        $query.= "GROUP_CONCAT(DISTINCT province) AS provinces ";
        $query.= "FROM reports GROUP BY report ORDER BY docID DESC ";

      $result = mysql_query($query);

  while($row=mysql_fetch_assoc($result)) { yada yada yada }

我想将每个$ row保存为一个唯一的数组,我可以在文档中的其他位置调用它,在我的情况下,我试图将它们称为某些表单输入的默认值。我可以想到几种方法来做到这一点,但它们都看起来非常复杂,添加了一些嵌套的for语句,并增加了... ...

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

怎么样

$data = array()
while($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

它为您提供了一个父$data数组,其中的每个元素都是您获取的关联数组之一。

答案 1 :(得分:2)

假设每个结果数据库行都是唯一的,每个$行在内容方面都是唯一的。将行粘贴到一个名为$ rows的数组中,如此 -

$rows = array();
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  $rows[] = $row;
  ...
}

如果你在谈论将每一行命名为一个唯一的变量,那么你可以做些事情,但是你会留下不可预测的变量名来试图找出来,所以我希望这不是你的意思:)