首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

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

2013-04-12 
求助PHP写入XML文件事字表数据只读一条数据,什么原因PHP根据主表中类型遍历从表对于数据 生成mxl 文件数据

求助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 " &nbsp;&nbsp;      ";
$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

热点排行