2016-10-26 2 views
0

Я хочу отформатировать json в таком формате для js библиотеки! GoJs ожидать JSON в этом формате:Php формат базы данных json для GoJs

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" } 
       ]; 

В PHP я пытаюсь вернуться JSON, как описано выше, но я действительно новичок в 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": {» идентификатор ":" 1" , "родитель": нулевой, "имя пользователя": "Иван", "электронная почта": "[email protected]", "пароль": "qwe123"}, "1": {» идентификатор ":" 2" , "родитель": "1", "имя пользователя": "Мартину", "электронная почта": "[email protected]", "пароль": "qwe123"}, "2": {» идентификатор ":" 3" , "родитель": "1", "имя пользователя": "Биляна", "электронная почта": "asd.com", "пароль": "qwe123"}, "3": { "ID" : "4", "родитель": "2", "имя пользователя": "Эмиль", "электронная почта": "[email protected]", "пароль": NULL}, "4": { "ID":» 5" , "родитель": "2", "Имя пользователя": "Елена", "электронная почта": "[email protected]", "пароль": NULL}, "5": { "ID": "6" , "родитель": "4", "имя пользователя": "боле", "электронная почта": нулевой, "пароль": NULL}, "6": { "ID" : "7", "родитель": "4", "имя пользователя": "Vlada", "электронная почта": нулевой, "пароль": NULL}}

Я пытаюсь заменить id с key becouse GoJs нужно key свойство определено. Мой json настолько разный, и мне нужно форматировать вывод, как выше json?

Что я здесь делаю неправильно?

ответ

2

Вам просто нужно изменить способ сохранить его в массиве

$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 * 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 id,username,email,parent FROM user"); 
$data = array(); 
while ($row = $users->fetch_assoc()) 
{ 
    $data[] = $row; 
} 
+1

Все получают куки. –

+0

Вкусный. Могу ли я выпить чашку с этим – RiggsFolly

+0

Пока вы не возражаете, чтобы это было холодно, когда оно туда попало, конечно. Если не «ледяной»! –

Смежные вопросы