2011-03-10 131 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

相關問題