2015-04-03 87 views
0

PHP:$ result = mysql_query(「SELECT * FROM events LIMIT 15」);使用PHP簡單創建JSON

任何人都可以幫助並告訴我如何創建json,看起來像上面的php查詢完全一樣嗎?

{ 
"events": [ 
    { 
    "id": 2, 
     "name": "TIME", 
     "image": "http://127.0.0.1/android_tests_json_and_xml/images/time_best.jpg", 
     "status": "30 years of Cirque du Soleil's best photos", 
     "profilePic": "http://127.0.0.1/android_tests_json_and_xml/images/time.png", 
     "timeStamp": "1403375851930", 
     "url": "http://ti.me/1qW8MLB" 
    }, 
    { 
     "id": 3, 
     "name": "Discovery", 
     "image": "http://127.0.0.1/images/discovery_mos.jpg", 
     "status": "A team of Austrian scientists has developed a laser system that causes fruit flies to dance.", 
     "profilePic": "http://127.0.0.1/android_tests_json_and_xml/images/discovery.jpg", 
     "timeStamp": "1403375851930", 
     "url": "http://dsc.tv/xmMxD" 
    }, 
    { 
     "id": 11, 
     "name": "A. R. rahman", 
     "image": "http://127.0.0.1/images/ar_bw.jpg", 
     "status": "", 
     "profilePic": "http://127.0.0.1/android_tests_json_and_xml/images/ar.jpg", 
     "timeStamp": "1403375851930", 
     "url": "" 
    } 
] 

}

我會很感激

+0

用更多的代碼編輯 – 2015-04-03 10:14:58

回答

2

嘗試這樣,

$rows = array(); 
$result = mysql_query("SELECT * FROM events LIMIT 15"); 
while($row = mysql_fetch_assoc($result)) { 
$row['events'][] = $row; 
} 
echo json_encode($rows); 
+0

It works .... Thanks @Ayyanar – 2015-04-03 10:31:50

1
$sth = mysqli_query("SELECT ..."); 
$rows = array(); 
while($r = mysqli_fetch_assoc($sth)) { 
$rows[] = $r; 
} 
return json_encode($rows); 
0

嘗試用類和JSON序列化接口

class Event implements JsonSerializable 
{ 
     var $id; 
     var $name; 
     var $image; 
     var $status; 
     var $profilePic; 
     var $timeStamp; 
     var $url; 
     public function __construct($id , $name , $image , $status , $profilePic , $timeStamp , $url) { 



      $this->id=$id 
      $this->name=$name 
      $this->image=$image 
      $this->status=$status 
      $this->profilePic=$profilePic; 
      $this->timeStamp=$timeStamp; 
      $this->url=$url; 
     } 

     public function jsonSerialize() { 

     return [ 
      'name' => $this->name, 
      'message' => $this->message, 
      'id'=> $this->id, 
      'name'=>$this->name, 
      'image'=>$this->image, 
      'status'=>$this->status, 
      'profilePic'=>$this->profilePic, 
      'timeStamp'=>$this->timeStamp, 
      'url'=>$this->url 
     ]; 
    } 
} 


$events=array(); 

$result = $db->query("SELECT * FROM events LIMIT 15"); 

if ($result) { 

     while($row = $result->fetch_assoc()) { 

      array_push($events,new Event($row['id'] , $row['name'] , $row['image'] , $row['status'] , $row['profilePic'] , $row['timeStamp'] , $row['url'])); 
     } 

} 
else { 

    $events=null; 
} 
$db->close(); 

if($events==null) 
{ 
    echo "data not found"; 
} 
else 
{ 
    echo json_encode($events); 
}