如何将mySql查询的结果索引为数组数组?

时间:2011-10-06 09:47:23

标签: php mysql

如果我需要选择和使用数据库中表的每个元素的信息,那么过程就是:

$query = "...mySql query...";
$query_result = mysql_query($query) or die (mysql_error());

然后,如果我想访问结果的字段,我将使用函数mysql_fetch_array()并像这样访问它们:

$query_result_array = mysql_fetch_array($query_result);
echo $query_result_array['field_1'];
....
echo $query_result_array['field_i'];
....

但是,由于查询可以返回更多元素,因此我希望使用从0到mysql_num_rows($ query_result)索引的数组访问每个元素。

举个例子:

echo $query_result_array['field_i'][0];
....
echo $query_result_array['field_i'][mysql_num_rows($query_result)];

应该为表格的每个选定元素打印字段i的值。

是否有能为我完成工作的功能? 如果没有,有关如何做的任何建议吗?

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我认为没有这样的方法;你必须自己做。

答案 1 :(得分:1)

这可能是另一种选择

$res = mysql_query("..SQL...");
$arr = array();
while ($row = mysql_fetch_assoc($res)) {
    $arr[] = $row;
}
var_dump($arr);

或者

$res = mysql_query("..SQL...");
for
(
    $arr = array(); 
    $row = mysql_fetch_assoc($res); 
    $arr[] = $row
);
var_dump($arr);

答案 2 :(得分:1)

尝试使用类似的东西:

$res = mysql_query("..mySql query...");
$arr = array();
while ($row = mysql_fetch_assoc($res)) {
    $query_result_array[] = $row;
}

然后您可以访问以下数据:

echo $query_result_array[0]['field_i'];

答案 3 :(得分:1)

基于前两个答案,那些作者假设通常的SO作者熟悉创建函数这样的事情

function sqlArr($sql) { return an array consists of 
  $ret = array();
  $res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
  if ($res) {
    while ($row = mysql_fetch_assoc($res)) {
      $ret[] = $row;
    }
  }
  return $ret;
}

$array = sqlArr("SELECT * FROM table");
foreach ($array as $row) {
  echo $row['name'],$row['sex'];
}

这个结果数组与你提出的结构有不同的结构,但它也更方便。 如果你仍然需要你的不寻常的,你必须告诉你将如何使用它