2011-03-10 97 views
1

我正在使用json_encode从数组中创建一个JSON对象。它们的数组长度为几百个元素,但json_encode似乎只返回数组的第一个元素。json_encode只返回数组的第一个元素?

这是json_decode的限制,还是我使用错误的语法来读取JSON对象?

一些代码: 我在PHP中创建数组:

$getarrayforjson = mysql_fetch_array($result); 

而在JavaScript中,我做了一个变量:

var my_array = <?php echo json_encode($getarrayforjson); ?> 

输入 'my_array' 在控制台给我一个不错的JSON响应,但只适用于第一个元素。

当我在代码中使用JSON时,如my_array.title或my_array [4],我总是得到相同的结果。

我认为我的语法错了,但不知道如何解决它。我是使用json_encode的新手。

回答

10
$getarrayforjson = mysql_fetch_array($result); 

只有一个结果。试试这个:

<?php 
while($row = mysql_fetch_array($result)) { 
    $json[] = $row; 
} 
echo json_encode($json); 
+0

还将MYSQL_ASSOC添加到mysql_fetch_array() – 2011-03-10 14:48:43

+0

Greg,如何以及为什么? – 2011-03-10 14:56:32

+0

贝瑞,谢谢你的快速和正确的答案!为了完成这个想法,我然后从这样的JSON对象中获得标题:'my_array [settings.activeImage] .title'。这让我可以从我的数据库中为灯箱中的每个图像添加一个标题(可能有更简单的方法可以做到这一点,但这很有效。) – 2011-03-10 15:01:12

相关问题