Converting MySQL rows to XML with PHP -
i'm working on php script output information mysql database. want output these echo results in php page xml file want make looks this:
<?xml version="1.0" encoding="utf-8" ?> <tv generator-info-name="www.mysite.com/xmltv"> <channel id=""> <display-name></display-name> <programme channel="" start="" stop=""> <title lang="en"></title> <sub-title lang="en"></sub-title> <desc lang="en"></desc> <category lang="en"></category> </programme> </channel> here's php:
<?php function db_connect() { define('db_host', 'localhost'); define('db_user', 'myusername'); define('db_password', 'mypasword'); define('db_database', 'mydbname'); $errmsg_arr = array(); $errflag = false; $link = mysql_connect(db_host, db_user, db_password); if(!$link) { die('failed connect server: ' . mysql_error()); } $db = mysql_select_db(db_database); if(!$db) { die("unable select database"); } } db_connect(); function clean($var) { return mysql_real_escape_string(strip_tags($var)); } $channels = clean($_get['channels']); $id = clean($_get['id']); if($errflag) { $_session['errmsg_arr'] = $errmsg_arr; echo implode('<br />',$errmsg_arr); } else { $insert = array(); if(isset($_get['channels'])) { $insert[] = 'channels = \'' . clean($_get['channels']) .'\''; } if(isset($_get['id'])) { $insert[] = 'id = \'' . clean($_get['id']) . '\''; } if($channels && $id) { $qrytable1="select id, channels, links tvguide channels='$channels' && id='$id'"; $result1=mysql_query($qrytable1) or die('error:<br />' . $qry . '<br />' . mysql_error()); while ($row = mysql_fetch_array($result1)) { zap2it($row); } mysql_close(); } else if(!$channels && ! $id) { $qrytable1="select id, channels, links, streams tvguide"; $result1=mysql_query($qrytable1) or die('error:<br />' . $qry . '<br />' . mysql_error()); echo '<?xml version=""1.0"" encoding="utf-8" ?>'; echo '<tv generator-info-name="www.mysite.com/xmltv">'; echo '<channel id="">'; echo '<display-name></display-name>'; echo '<programme channel="" start="" stop="">'; echo '<title lang="en"></title>'; echo '<sub-title lang="en"></sub-title>'; echo '<desc lang="en"></desc>'; echo '<category lang="en"></category>'; echo '</programme>'; echo '</channel>'; while ($row = mysql_fetch_array($result1)) { echo "<p id='channels'>".$row["id"]. " " . $row["channels"]. "</p>"; echo "<p id='links'>"; echo "http://www.mysite.com/get-listing.php?channels=" . $row["channels"] . "&id=" . $row["id"] .'</p>'; } } } ?> here's php output looks like:
<?xml version="1.0" encoding="utf-8" ?><tv generator-info-name="www.mysite.com/xmltv"><channel id=""><display-name></display-name><programme channel="" start="" stop=""><title lang="en"></title><sub-title lang="en"></sub-title><desc lang="en"></desc><category lang="en"></category></programme></channel> edit: have got problem echo. can't able echo channels in database.
if(!$channels && ! $id) { $qrytable1="select id, channels, links, streams tvguide"; $result1=mysql_query($qrytable1) or die('error:<br />' . $qry . '<br />' . mysql_error()); while ($row = mysql_fetch_array($result1)) { } mysql_close(); } here's error have got: error on line 12 @ column 11: xml declaration allowed @ start of document
i error when i'm using under while statement:
while ($row = mysql_fetch_array($result1)) { echo '<?xml version="1.0" encoding="utf-8" ?> <tv generator-info-name="www.mysite.com/xmltv"> <channel id=""> <display-name></display-name> <programme channel="" start="" stop=""> <title lang="en"></title> <sub-title lang="en"></sub-title> <desc lang="en"></desc> <category lang="en"></category> </programme> </channel> </tv>'; } the output php show blank page. how use code allow me print these xml output in php?
if channel = 0 , id = 0 output correct. may not tabbed, correct logic.
depending on browser xml might show blank page ... make sure view code!
you need rethink logic though $channel && $id , !$channel && !id suspiciously odd.
Comments
Post a Comment