将基于查询的所有行提取到数组中

时间:2012-03-29 18:57:59

标签: php mysql

我有以下代码:

  //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $result = mysql_query("SELECT * FROM $tableName");          //query
  $array = mysql_fetch_row($result);                          //fetch result   

  //--------------------------------------------------------------------------
  // 3) echo result as json 
  //--------------------------------------------------------------------------
  echo json_encode($array);

我想要做的是根据查询获取所有行并将它们提供给数组,给我一个这样的输出:

["1", "", "", "", "", ""]
["2", "", "", "", "", ""]
etc...

我认为我需要遍历行并构建数组,但我不知道如何。

2 个答案:

答案 0 :(得分:1)

尝试:

$result = mysql_query("SELECT * FROM $tableName");
while($row = mysql_fetch_array($result)) {
    $array[]=array($row[0], $row[1],...);
}

这将生成一个多维数组,其中子数组包含您的值。

答案 1 :(得分:1)

$result = mysql_query("SELECT * FROM $tableName");  
$arr_json = array();
while ($row = mysql_fetch_assoc($result)) {
   $json = json_encode($row);
   $arr_json[] = $json;
}

编辑:看一下j08691的回答,看起来我可能误会了。

无论如何,如果你不知道你有多少列,请执行以下操作:

$arr = array();
while ($row = mysql_fetch_assoc($result)) {
   $arr2 = array();
   foreach ($row as $val) $arr2[] = $val;
   $arr[] = $arr2;
}