PHP将mysql-results double添加到数组中。

时间:2011-05-19 12:44:15

标签: php mysql json

$query = "select * from tblRecords where record_category = '" . $cat . "' order by record_artist";
$result = $link->query($query);

这是我用来获取结果的查询,这可行。

while($record = $result->fetch_array()) {
        array_push($arr_result, $record);
}

这是我将每个值添加到数组的代码。但是之后

echo json_encode($arr_result);

这是我收到的结果集:

http://i.stack.imgur.com/Gmggl.png

我做错了什么?

3 个答案:

答案 0 :(得分:2)

你需要通过=>对MYSQL_ASSOC函数

fetch_array

请查看:http://php.net/manual/en/function.mysql-fetch-array.php

  

返回一个字符串数组   对应于获取的行,或   如果没有更多行,则为FALSE。该   返回数组的类型取决于方式   result_type已定义。通过使用   MYSQL_BOTH(默认),你会得到一个   具有关联和数字的数组   指数。只使用MYSQL_ASSOC   得到关联指数(如   mysql_fetch_assoc()工作),使用   MYSQL_NUM,你只获得数字索引   (因为mysql_fetch_row()有效)。

答案 1 :(得分:0)

fetch_array正在返回数字和关联数组 - 而是使用fetch_array_assoc()

答案 2 :(得分:0)

在PHP中没有fetch_array()这样的函数,我认为你正在使用一个内部调用mysql_fetch_array()的预定义MySQL类,所以检查类,实际上你得到了正确的结果,但是使用{ {1}}(默认),您将获得一个包含关联和数字索引的数组。

使用

MYSQL_BOTH

或者

$row = mysql_fetch_array($result, MYSQL_ASSOC));

你一定忘了用$row = mysql_fetch_array($result, MYSQL_NUM)); 写一个论点。

reference