2014-06-18 2 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 '=> "$ 아이디', '이름'=>"$ 이름 ")과 같이 변화하는 시도 등의 동안, 또한' – shatheesh

+0

, 즉 주목. json에서는 필드 사이의 공백과 개행이 중요하지 않습니다. –

+0

조금 나아졌지만 여전히 인라인 형식으로 출력됩니다. 다른 아이디어? – user3747201

답변

0

당신은 단지 각 루프 반복하여 $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에 새로운 배열 위치로 루프에서 생성 된 배열을 배치하고 있는지 확인 이

$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"); 
} 
관련 문제