Header Ads

Hướng dẫn query từ SQL ra file XML hoặc JSON

Hôm nay mình sẽ hướng dẫn các bạn làm các truy vấn SQL bằng PHP và trả về file JSON hoặc file XML

Trước tiên mình phải làm 1 cái SQL
các bạn có thể tham khảo link sau để làm ra được cái database
https://developers.google.com/maps/articles/phpsqlsearch_v3

Thử truy vấn trong SQL
SELECT name,address,lat,lng, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) ASdistance FROM markers HAVING distance < 25 ORDER BY distance
KẾT QUẢ TRẢ VỀ
Như vậy mục tiêu của mình là xuất ra được 2 định dạng XML và JSON của cái bảng phía trên
Trước hết mình sẽ xuất ra định dạng XML trước sử dụng DOM

<?php
// Khai báo :
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Tìm 20 điểm gần nhất tọa độ 37,-122
$sql="SELECT name,address,lat,lng, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance";
$query=mysql_query($sql);

// Hiển thị ra XML

if(mysql_num_rows($query) == 0)
{
echo "Chua co du lieu";
}
else
{

      while ($row = mysql_fetch_array($query)) {
         $node = $dom->createElement("marker");
         $newnode = $parnode->appendChild($node);
         $newnode->setAttribute("name", $row['name']);
         $newnode->setAttribute("address", $row['address']);
         $newnode->setAttribute("lat", $row['lat']);
         $newnode->setAttribute("lng", $row['lng']);
         $newnode->setAttribute("distance", $row['distance']);
      }
}

echo $dom->saveXML();
KẾT QUẢ XUẤT RA FILE XML
// Hiểm thị ra JSON $json = array() ;
if(mysql_num_rows($query) == 0)
{
    echo "Chua co du lieu";
}
else
{
    while($row=mysql_fetch_array($query)){
        $marker=array();
        $marker["name"]= $row['name'];
        $marker["address"]= $row['address'];
        $marker["lat"]= $row['lat'];
        $marker["lng"]= $row['lng'];        
        $marker["distance"] = $row['distance'] ;
        $json['markers'][]=$marker;
    }
}
echo json_encode($json);

KẾT QUẢ JSON

No comments:

Powered by Blogger.