2016-10-26 18 views
0

jsライブラリの場合は、jsonをこの形式でフォーマットします。 PHPでGoJsのPHPデータベース形式json

model.nodeDataArray = 
       [ 
        { key: "1",    username: "Don Meow", source: "cat1.png" }, 
        { key: "2", parent: "1", username: "Demeter", source: "cat2.png" }, 
        { key: "3", parent: "1", username: "Copricat", source: "cat3.png" }, 
        { key: "4", parent: "3", username: "Jellylorum", source: "cat4.png" }, 
        { key: "5", parent: "3", username: "Alonzo",  source: "cat5.png" }, 
        { key: "6", parent: "2", username: "Munkustrap", source: "cat6.png" } 
       ]; 

私は上記のようなJSONを返すようにしようとしたがJSONに本当に新しいですし、私の例いけない仕事:GoJsは、この形式のJSONを期待します!

$users = $db->query("SELECT * FROM user"); 
$data = array(); 

while ($result = $users->fetch_assoc()) 
{ 
    $data['key'] = $result['id']; 
    $data['username'] = $result['username']; 
    $data['email'] = $result['email']; 
    $data['parent'] = $result['parent']; 

    array_push($data, $result); 
} 

echo json_encode($data); 

私のJSONは、次のようになります。

{ "キー": "7"、 "ユーザ名": "Vlada"、 "親": "4"、 "0":{」 「password」:「qwe123」}、「1」:{"id": "1"、 "parent":null、 "username": "Ivan"、 "email": "[email protected]" "2"、 "親": "1"、 "ユーザ名": "Martinu"、 "電子メール": "[email protected]"、 "パスワード": "qwe123"}、 "2" "id": "3"、 "parent": "1"、 "username": "Biljana"、 "email": "asd.com"、 "password": "qwe123"}、 "3" 「4」、「親」:「2」、「ユーザ名」:「エミール」、「電子メール」:「[email protected]」、「パスワード」:null}、「4」:{「id」: 「5」、「親」:「2」、「ユーザ名」:「エレナ」、「電子メール」:「[email protected]」、「パスワード」:null}、「5」:{「id」:「6」、 、 "parent": "4"、 "username": "Bole"、 "email":null、 "password":null}、 "6":{"id" : "7"、 "親": "4"、 "ユーザ名": "Vlada"、 "電子メール":ヌル、 "パスワード":ヌル}}私はGoJsが必要becouse keyidを交換しようと

keyプロパティが定義されています。私のjsonは非常に異なるので、私は上記のjsonのような出力をフォーマットする必要がありますか?

ここで何が間違っていますか?

答えて

2

は、あなただけの

$users = $db->query("SELECT * FROM user"); 
$data = array(); 
while ($row = $users->fetch_assoc()) 
{ 
    $t = array(); 
    $t['key']  = $row ['id']; 
    $t['username'] = $row ['username']; 
    $t['email']  = $row ['email']; 
    $t['parent'] = $row ['parent']; 

    $data[] = $t; 
} 

またはそれ以上シンプルにそれを単純化してみ

$users = $db->query("SELECT * FROM user"); 
$data = array(); 

while ($result = $users->fetch_assoc()) 
{ 
$row = array (
    "key" => $result['id'], 
    "username" => $result['username'], 
    "email" => $result['email'], 
    "parent" => $result['parent'], 
); 

array_push($data, $row); 
} 

echo json_encode($data); 
+0

よろしく!これは良い仕事です。どうもありがとうございました – Ivan

+0

いい加減な歓声! :) – Eyy

2

あなたがここにいくつかの奇妙なものをやっているあなたは、配列の中に格納する方法を変更する必要がありますクエリに必要な列を指定します。これにより、配列がすぐに作成され、配列の準備が整えられます。

$users = $db->query("SELECT id,username,email,parent FROM user"); 
$data = array(); 
while ($row = $users->fetch_assoc()) 
{ 
    $data[] = $row; 
} 
+1

誰もがクッキーを取得します。 –

+0

おいしい。それと一緒にお茶を淹れてもいいですか? – RiggsFolly

+0

そこに着くと寒い気にならない限り、確かにそうです。 "アイス"でない場合! –