求助PHP写入XML文件事字表数据只读一条数据,什么原因
PHP根据主表中类型遍历从表对于数据 生成mxl 文件数据只显示一条 具体如下
<?php
include("admin.php");
if(file_exists("../xml/list.xml"))
{
unlink("../xml/list.xml");//存在就先删除
}
// create doctype头
$dom = new DOMDocument("1.0","utf-8");
// create root element对像
$root = $dom->createElement("list");
$dom->appendChild($root);
$dom->formatOutput=true;
$sqlClass="select music_class from dj_class";//从数据库里读数据
$resClass = mysql_query($sqlClass);
while($rowClass = mysql_fetch_array($resClass))
{
$music_class = $rowClass['music_class'];//读取字段
$item = $dom->createElement("m");
$root->appendChild($item);
$item_url = $dom->createAttribute("label");
$item->appendChild($item_url);
$item_urlValue = $dom->createTextNode($music_class);
$item_url->appendChild($item_urlValue);
$item_urlx = $dom->createElement("m");
$item->appendChild($item_urlx);
echo "$music_class";
echo "<br/>";
echo " ";
$sqlMusic="select * from dj_music where music_ishtml='$music_class'";//从数据库里读数据
$resMusic = mysql_query($sqlMusic);
$sqlc="SELECT COUNT(*) AS count FROM dj_music where music_ishtml='$music_class'";
$result=mysql_fetch_array(mysql_query($sqlc));
$count=$result['count'];
//echo "$count";
//echo "<br/>";
if($count>0){//此处判断是否有数据
for($i = 0;$i < $count;$i ++)
{
while($rowMusic = mysql_fetch_row($resMusic))
{
echo"$rowMusic[1]";
echo"$rowMusic[2]";
echo "<br/>";
$item_url = $dom->createAttribute("type");
$item_urlx->appendChild($item_url);
$item_urlValue = $dom->createTextNode("");
$item_url->appendChild($item_urlValue);
$item_url = $dom->createAttribute("src");
$item_urlx->appendChild($item_url);
$item_urlValue = $dom->createTextNode($music_url);
$item_url->appendChild($item_urlValue);
$item_url = $dom->createAttribute("lrc");
$item_urlx->appendChild($item_url);
$item_urlValue = $dom->createTextNode("$rowMusic[2]");
$item_url->appendChild($item_urlValue);
$item_url = $dom->createAttribute("label");
$item_urlx->appendChild($item_url);
$item_urlValue = $dom->createTextNode("$rowMusic[1]");
$item_url->appendChild($item_urlValue);
}
}
}else {
echo "无数据";
echo "<br/>";
}
}
// save tree to file
$dom->save("../xml/list.xml");//保存到指定目录下
//header("location:content_show.php");
?>
php 输出结果为
天傲网游公会
wwww
豪门网游公会
滴答../xml/music/刀剑如梦.mp3
凤凰传奇../xml/music/刀剑如梦.mp3
散人天堂公会
刀剑如梦../xml/music/刀剑如梦.mp3
生成xml则是
<?xml version="1.0" encoding="utf-8"?>
<list>
<m label="天傲网游公会">
<m/>
</m>
<m label="豪门网游公会">
<m type="" src="" lrc="../xml/music/刀剑如梦.mp3" label="凤凰传奇"/>
</m>
<m label="散人天堂公会">
<m type="" src="" lrc="../xml/music/刀剑如梦.mp3" label="刀剑如梦"/>
</m>
</list>
正确的XMl如下
<?xml version="1.0" encoding="utf-8"?>
<list>
<m label="天傲网游公会">
<m/>
</m>
<m label="豪门网游公会">
<m type="" src="" lrc="../xml/music/刀剑如梦.mp3" label="凤凰传奇"/>
<m type="" src="" lrc="../xml/music/刀剑如梦.mp3" label="滴答"/>
</m>
<m label="散人天堂公会">
<m type="" src="" lrc="../xml/music/刀剑如梦.mp3" label="刀剑如梦"/>
</m>
</list>
认真请教,请大家帮助指导 先谢谢了
PHP写入XML php
[解决办法]
因为$item_urlx = $dom->createElement("m");是在循环外部,实际上只有一个
无论循环多少次,后面的都是覆盖掉前面的值,最终只产生一个node