2014-06-18 3 views
0

Я изо всех сил пытаюсь отформатировать мои данные json. Я хочу, чтобы это выглядело так. Я просмотрел весь stackoverflow и Интернет и не могу найти функцию, которая работает. Каждая используемая мной функция привела к неизменному формату исходных данных json.Получить данные json в пользовательском формате

[ 
    { 
     "id": 1, 
     "name": "Kenneth Auchenberg", 
     "avatar": "http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif", 
     "type": "contact" 
    }, 
    { 
     "id": 2, 
     "name": "Jon Froda", 
     "avatar": "http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif", 
     "type": "contact" 
    }, 
    { 
     "id": 3, 
     "name": "Anders Pollas", 
     "avatar": "http://cdn0.4dots.com/i/customavatars/avatar7112_1.gif", 
     "type": "contact" 
    }, 

] 

Однако он продолжает печатать, как это:

{"id":"4","name":"Kenneth Auchenberg"} 

Я попробовал все функции онлайн, но безрезультатно. Вот мой текущий код:

<?php 
$mysql_hostname = "localhost"; 
$mysql_user = "root"; 
$mysql_password = "root"; 
$mysql_database = "students"; 

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Opps some thing went wrong"); 
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong"); 



$sql_in= mysql_query("SELECT name,id FROM users order by name desc"); 
while($row = mysql_fetch_array($sql_in)) 
{ 
$name=$row['name']; 
$id=$row['id']; 


$variable = array('id' => "$id", 
         'name' => "$name"); 

} 
$json = json_encode($variable); 

    echo $json; 
?> 
+1

Попробуйте изменить как этот 'переменной $ [] = массив ('ID' => "$ ID", 'имя' => "$ имя");' – shatheesh

+0

Кроме того, обратите внимание, что. в json, пробелы и символы новой строки между полями не учитываются. –

+0

он немного улучшился, но он все еще печатает в встроенном формате. Любые другие идеи? – user3747201

ответ

0

Вы просто переписав $variable значение с каждой итерации цикла. Это простое изменение. Просто убедитесь, что вы размещаете массив, созданный в цикле в новое положение массива в $variable так:

$variable[] = array(...); 
0

Используйте этот код может помочь вам

 while($row = mysql_fetch_array($sql_in)) 
     { 
     $name=$row['name']; 
     $id=$row['id']; 


    $variable[] = array('id' => "$id",'name' => "$name");//use $variable[] instead of $variable 

     } 
    echo $json = json_encode($variable); 
+0

Что такое ответ от @Mike Brant? – Sadikhasan

+0

извиняюсь, я не вижу этого перед публикацией. –

0

Инициализировать переменную $ вне тела в то время как это

$variable = array(); 
$sql_in= mysql_query("SELECT name,id FROM users order by name desc"); 
while($row = mysql_fetch_array($sql_in)) 
{ 
    $name=$row['name']; 
    $id=$row['id']; 
    $variable[] = array('id' => "$id", 'name' => "$name"); 
} 
Смежные вопросы