[PHP] MySQL Data to JSON using PHP
Treeview 를 검색해서 테스트 하다보니 JSON 만드는 방법을 알아야 원하는 결과로 만들어 낼 수 있는 거 같다.
<?php
include_once "connect.php";
require_once 'treeClass.php'; // Tree 클래스
$t = new treeClass();
$sql = "SELECT * FROM treeview_items";
$result = mysqli_query($db, $sql);
while($row = mysqli_fetch_assoc($result)){
$menu[] = $row;
}
?>
여기까지는 일반적인 형태로 배열화를 하는 방법이다.
만들어진 배열을 가지고 foreach 문을 이용하여 다시 재가공을 해야 한다.
$rows = array();
$i=0;
foreach ($menu as $r) {
$rows[$i]['first_name'] = $r->first_name;
$rows[$i]['last_name'] = $r->last_name;
$rows[$i]['phone'] = $r->phone;
$rows[$i]['email'] = $r->email;
$i++;
}
//keys total & rows is required on jEasyUI
$result = array('total'=>$menu['count'],'rows'=>$rows);
echo json_encode($result);
Android JSON 포멧으로 만드는 가장 일반적인 형태
<?php
include_once "connect.php";
$sql = "SELECT * FROM address";
$res = mysqli_query($db,$sql);
$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result,
array('id'=>$row[0],'name'=>$row[1],'address'=>$row[2]
));
}
$json = json_encode(array("result"=>$result));
?>
여기서
array_push($result,
array('id'=>$row[0],'name'=>$row[1],'address'=>$row[2]
));
부분을
$result['result'][] = $row;
로 하는게 더 편할 수 있다.