2016-05-27 3 views
0

明らかに、私のクエリから返される行がオーバー処理されていますが、PHPリソースと行数と配列を理解できません。JavaScriptからJavascriptにオーバーネストされた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" 
     ... 

を配列()が、私は方法がわからない:それは次のようになります。私はdb行を適切に配列に変換する方法を知りません。

+0

$行[] =(アレイ)の$ R。 –

+2

問題は '$ rows [] = array($ r);'これは '$ rows [] = $ r'のようになります –

+3

[mysql_ *'関数の使用を中止してください](http://stackoverflow.com/質問/ 12859942/why-shouldnt-i-use-mysql-functions-in-php)を参照してください。 [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)はPHP 7で削除されました。[prepared](http://en.wikipedia.org/ [PDO](http://php.net/manual/en/pdo.prepared-statements.php)および[MySQLi](http://php.net/manual/en/mysqli.quickstart)のwiki/Prepared_statement)ステートメント.prepared-statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –

答えて

0

すべて正しい

$rows[] = $r; 

の最初にしてJavaScriptを使用しているJSON.parse

JSON.parse(str); 
+0

ありがとうございます。最初の修正が機能しました。私は2番目の修正が何のためであるか分かりません。確かに、$ httpの呼び出しはJSONを応答として期待しています。私はその修正なしで動作することを意味します。 – DaveC426913

1

問題はほとんど変化がこのような操作を行うください$rows[] = array($r);

である:$rows[] = $r、Iそれ以降は、オブジェクトではない配列を取得することを考えてください。追加のJSON_FORCE_OBJECTを使用して配列をエンコードし、配列がオブジェクトjsonになるようにすることができます。通常json_encode

例:

Object {data: Array[23], status: 200, config: Object, statusText: "OK"} 
    data: Array[23] 
     0:Array[3] 
      Name: "foo" 
      Order: "0" 
      uID: "1" 
     1: Array[3] 
      Name: "bar" 
      Order: "1" 
      uID: "2" 
     ... 
関連する問題