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

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

WBOY
WBOYOriginal
2016-06-23 14:04:52904browse

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

谢谢 问题已解决

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn