mysql to php to 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 "<request>\n"; while($line = mysql_fetch_assoc($results)) { echo " <CD>\n"; echo "<singer>" . $line["artist"] . "</singer>\n"; echo "<song>" . $line["title"] . "</song>\n"; echo "<album>". $line["album"] ."</album>\n"; echo "<name>". $line["name"] ."</name>\n"; echo "<shout>" . $line["msg"] . "</shout>\n"; echo "</CD>\n"; } echo "</request>\n"; mysql_close($link); 

Solutions Collecting From Web of "mysql to php to xml показывает пустой возраст"

Я бы предпочел использовать simplexml , xmlwriter или DOM для создания этого XML и PDO для обработки базы данных:

 $stmt = $db->prepare($query); // define $db as PDO in include-file $stmt->execute(); $requests = $stmt->fetchAll(PDO::FETCH_ASSOC); $xml = new SimpleXMLElement("<?xml version="1.0" encoding="UTF-8"?><request></request>"); 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']); } echo $xml->asXML(); 

И небольшой вариант с массивом отображения:

 $fields = array( 'singer' => 'artist', 'song' => 'title', # ... ); foreach ($requests as $r) { $cd = $xml->addChild("CD"); foreach ($fields as $name => $column) { $cd->$name = $r[$column]; } }