欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求助PHP写入XML文件事字表数据只读一条数据,什么原因

程序员文章站 2022-06-12 17:22:19
...
PHP根据主表中类型遍历从表对于数据 生成mxl 文件数据只显示一条 具体如下

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 "
";
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 "
";



if($count>0){//此处判断是否有数据



for($i = 0;$i {
while($rowMusic = mysql_fetch_row($resMusic))
{
echo"$rowMusic[1]";
echo"$rowMusic[2]";

echo "
";

$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 "
";
}

}

// 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如下


















认真请教,请大家帮助指导 先谢谢了










回复讨论(解决方案)

因为$item_urlx = $dom->createElement("m");是在循环外部,实际上只有一个

无论循环多少次,后面的都是覆盖掉前面的值,最终只产生一个node

谢谢 问题已解决