以前の記事で「MySQLのデータをXML形式で出力」ってのを書いたが、そのときプログラミングしたものはechoでいちいちタグを出力するものだった。
今考えるとなぜ思いつかなかったんだろう?と思うが、PHPにはちゃんとDOM関数があるじゃん(^^;
・・・ってことで書き直してみた。
今考えるとなぜ思いつかなかったんだろう?と思うが、PHPにはちゃんとDOM関数があるじゃん(^^;
・・・ってことで書き直してみた。
<?php
header("Content-Type: text/xml; charset=utf-8");
$doc = new DOMDocument("1.0", "utf-8");
$conn = @mysql_connect("localhost", "*******", "*******");
if( !$conn ) exit;
@mysql_select_db("*******", $conn);
@mysql_query("set names utf8");
$root = $doc->appendChild( $doc->createElement("data") );
$q_category = @mysql_query("select * from CATEGORY order by ID", $conn);
while( $row_cat = @mysql_fetch_array($q_category) )
{
$cat_id = $row_cat["ID"];
$ele_cat = $root->appendChild( $doc->createElement("category") );
$ele_cat->setAttribute("id", $cat_id);
$ele_cat->setAttribute("name", $row_cat["NAME"]);
$q_shops = @mysql_query("select * from SHOP where CATEGORY=$cat_id order by ID", $conn);
while( $row_shop = @mysql_fetch_array($q_shops) )
{
$id = $row_shop["ID"];
$ele_shop = $ele_cat->appendChild( $doc->createElement("shop") );
$ele_shop->setAttribute("id", $id);
$ele_shop->setAttribute("name", $row_shop["NAME"]);
$ele_shop->setAttribute("latitude", $row_shop["LATITUDE"]);
$ele_shop->setAttribute("longitude", $row_shop["LONGITUDE"]);
$ele_shop->setAttribute("category", $cat_id);
$ele_shop->setAttribute("type", $row_shop["TYPE"]);
$ele_shop->setAttribute("initial", $row_shop["INITIAL"]);
$ele_shop->setAttribute("enabled", $row_shop["ENABLED"]);
$q_info = @mysql_query("select * from SHOP_PROPERTY where SHOP=$id order by NAME,INDEX_NO", $conn);
while( $row_info = @mysql_fetch_array($q_info) )
{
$tagname = strtolower($row_info["NAME"]);
$ele_info = $ele_shop->appendChild( $doc->createElement($tagname, $row_info["VALUE"]) );
$ele_info->setAttribute("id", $row_info["ID"]);
$ele_info->setAttribute("index", $row_info["INDEX_NO"]);
}
}
}
$q_type = @mysql_query("select * from TYPE order by ID", $conn);
while( $row_type = @mysql_fetch_array($q_type) )
{
$ele_type = $root->appendChild( $doc->createElement("type", $row_type["NAME"]) );
$ele_type->setAttribute("id", $row_type["ID"]);
$ele_type->setAttribute("icon", $row_type["ICON"]);
}
echo $doc->saveXML();
@mysql_close($conn);
?>
テーマ:PHP - ジャンル:コンピュータ
|
| ホーム |
SHOJI's Code



