将mysql转换为php到xml显示空白年龄。
将mysql转换为php到xml显示空白年龄。
我在输出一个请求的歌曲标题、艺术家、专辑以及请求者的姓名和留言的XML列表方面遇到了问题。
我尝试了下面的代码但是只给我一个空白页面:
$link = mysql_connect("localhost","dbuser","dbpass"); mysql_select_db("dbname"); $query = "SELECT requestlist.host, requestlist.msg, requestlist.name, songlist.ID, songlist.count_requested, songlist.artist, songlist.title, songlist.album, songlist.buycd, songlist.date_played, count(*) as cnt FROM requestlist, songlist WHERE (requestlist.songID = songlist.ID) AND (requestlist.code<700) GROUP BY requestlist.msg, songlist.ID, songlist.count_requested, songlist.artist, songlist.title, songlist.album, songlist.buycd, songlist.date_played ORDER BY requestlist.msg DESC, songlist.date_played DESC" ; $results = mysql_query($query); echo "\n"; while($line = mysql_fetch_assoc($results)) { echo " \n"; mysql_close($link);\n"; echo " \n"; } echo "" . $line["artist"] . " \n"; echo "" . $line["title"] . " \n"; echo "". $line["album"] ." \n"; echo "". $line["name"] ." \n"; echo "" . $line["msg"] . " \n"; echo "
问题:从MySQL到PHP到XML的过程中,显示的年龄为空白。
原因:代码中没有包含将年龄添加到XML中的逻辑。
解决方法:在循环中添加将年龄添加到XML的逻辑。
完整代码如下:
$stmt = $db->prepare($query); // define $db as PDO in include-file $stmt->execute(); $requests = $stmt->fetchAll(PDO::FETCH_ASSOC); $xml = new SimpleXMLElement(""); foreach ($requests as $r) { $cd = $xml->addChild("CD"); $cd->addchild("singer", $r['artist']); $cd->addChild("song", $r['title']); $cd->addChild("album", $r['album']); $cd->addChild("name", $r['name']); $cd->addChild("shout", $r['msg']); $cd->addChild("age", $r['age']); // 添加年龄到XML } echo $xml->asXML();
通过在循环中添加 `$cd->addChild("age", $r['age']);` 代码,将年龄添加到XML中,问题得以解决。