我顯然是過度處理從我的查詢返回的行,但我並不真正瞭解PHP資源和行數和數組。對PHP的回聲生成嵌套json
這是我的數據庫調用:
$result=mysql_query($query);
if(mysql_num_rows($result)>0){
header('Content-type: application/json');
$rows = array();
while($r = mysql_fetch_assoc($result)){
$rows[] = array($r);
}
echo json_encode($rows);
};
這就是我在我的JavaScript取回:
Object {data: Array[23], status: 200, config: Object, statusText: "OK"}
data: Array[23]
0:Array[1] <-- superfluous
0: Object
Name: "foo"
Order: "0"
uID: "1"
1:Array[1] <-- superfluous
0: Object
Name: "bar"
Order: "1"
uID: "2"
...
在有有一個多餘的陣列層。它應該是這樣的:
Object {data: Array[23], status: 200, config: Object, statusText: "OK"}
data: Array[23]
0:Object
Name: "foo"
Order: "0"
uID: "1"
1: Object
Name: "bar"
Order: "1"
uID: "2"
...
我很想刪除行=陣列(),但我不知道怎麼辦。我不知道如何正確地將我的數據庫行轉換爲數組。
$行[] =(數組)$ R; –
問題出在'$ rows [] = array($ r);'make this like'$ rows [] = $ r' –
請[停止使用'mysql_ *'函數](http://stackoverflow.com/問題/ 12859942 /爲什麼 - 不應該,我使用MySQL的函數功能於PHP)。 [這些擴展](http://php.net/manual/en/migration70.removed-exts-sapis.php)已在PHP 7中刪除。瞭解[編寫](http://en.wikipedia.org/ wiki/Prepared_statement)語句[PDO](http://php.net/manual/en/pdo.prepared-statements.php)和[MySQLi](http://php.net/manual/en/mysqli.quickstart .prepared-statements.php)並考慮使用PDO,[這真的很簡單](http://jayblanchard.net/demystifying_php_pdo.html)。 –