首页 > 后端开发 > php教程 > 求助PHP写入XML文件事字表数据只读一条数据,什么原因

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

WBOY
发布: 2016-06-23 14:04:52
原创
923 人浏览过

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

谢谢 问题已解决

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板