2011-05-19 73 views
1
$query = "select * from tblRecords where record_category = '" . $cat . "' order by record_artist"; 
$result = $link->query($query); 

这是我使用的查询来获取结果,这工作正常。PHP将mysql-results double添加到数组。

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

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

echo json_encode($arr_result); 

这是结果集,我收到:

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

我在做什么错?

+0

尝试的var_dump在while循环 – Catalin 2011-05-19 12:47:29

回答

0

有像PHP fetch_array()没有作用,我认为你是使用预定义的MySQL类内部调用mysql_fetch_array(),所以检查课程,实际上你会得到正确的结果,但通过使用MYSQL_BOTH默认),您将得到一个包含关联和数字索引的数组。

使用

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

或者

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

你一定是忘了写一个说法与fetch_array()

reference

+2

MySQLi结果集有一个名为fetch_array的方法。 – 2011-05-19 13:00:32

+0

@EmilVikströmOP没有描述,所以我期待作为一般的PHP函数与MySQL。无论如何感谢知识 – diEcho 2011-05-19 13:08:18

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

($记录)。换句话说,在'fetch_array()'版本都将创建规则排列和结果的哈希版本。 – 2011-05-19 12:49:05

0

fetch_array将返回既是数字和一个关联数组 - 相反,使用fetch_array_assoc()