2011-10-08 70 views
0

我寫了一個腳本來查詢mysql數據庫並以json格式對數據進行編碼。在json中顯示多條記錄使用php mysql查詢

我已添加$encoded = json_encode($encodable[0]);,刪除其他[ ]括號,但只顯示1條記錄。有沒有辦法仍然刪除這些括號,但顯示例如我正在查詢的每個記錄?

對不起,不知道如何更好地描述問題!

+1

提供一些樣品的輸入和輸出。 –

+0

可能在這裏丟失了一些東西,但是如果你在不解析數據的情況下刪除'[]'括號,那麼JSON將會失效? – Clive

回答

0

將查詢的結果集編碼爲JSON?或者編碼正在發送到數據庫的數據?

$ encodeable [0]是該數組的第一個元素,所以清楚的是這將被編碼。根據您的數據的格式,encodeable[0][{"key":"value"},{"key":"value"},{"key":"value"}]默認爲那與0,1,2鍵索引數組...

如果你的目標是隻輸出JSON作爲一個JS對象{},而不是數組[]可以使用json_encode($array, JSON_FORCE_OBJECT);,它將對索引數組進行編碼,如{"0":"value"}{"0":{"0":"value"}},而不是["value"][["value"]]。如果這不是你以後,你可能只是通過你的陣列中的每個元素encodeable需要循環和編碼方式(使用for循環)

http://php.net/manual/en/function.json-encode.php

+0

好吧,這是我使用的代碼,你可以告訴我,我把JSON FORCE OBJECT放在哪裏? $ encodable = array(); mysql_connect(localhost,$ username,$ password); mysql_select_db($ database)或死(「無法選擇數據庫」); $ result = mysql_query($ sql); while($ obj = mysql_fetch_object($ result)) { $ encodable [] = $ obj; } $ encoded = json_encode($ encodable); echo $ encoded; mysql_close(); – Steve

+0

'$編碼= json_encode($地編碼JSON_FORCE_OBJECT)' – Benno

+0

謝謝,我已經補充說,但現在它只是回聲 「ArrayJSON_FORCE_OBJECT」 – Steve