将mysql转换为php到xml显示空白年龄。

23 浏览
0 Comments

将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";
    echo "" . $line["artist"] . "\n";
    echo "" . $line["title"] . "\n";
    echo "". $line["album"] ."\n";
    echo "". $line["name"] ."\n";
    echo  "" . $line["msg"] . "\n";
    echo "\n";   
}
echo "\n";
mysql_close($link);

0
0 Comments

问题:从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中,问题得以解决。

0