<?php
require("global.php");
$query=mysql_query("select * from hl_members") or die ("失败");
$user_num=mysql_num_rows($query);
for ($ab=0;$ab<$user_num;$ab++) {
$user_detail=mysql_fetch_array($query);
$username=$user_detail[m_username];    if (file_exists("$userdir/{$username}_box.php")){
       $mymusicbox= file("$userdir/{$username}_box.php");
       $allmusic = count($mymusicbox);
   $leftnum=$maxboxnum-$allmusic;
   $listmsg = "";
        for ($i=0;$i<$allmusic;$i++){
 $mymusic=explode("|", $mymusicbox[$i]);
 $time=date("Y.m.d",$mymusic[3]);
 $listmsg= "<li><span class=\"songname\"><input type=checkbox  checked  name=id[] value=".$mymusic[2]."><a href=\"play.php?id=$mymusic[2]\" target=\"_blank\"> ".$mymusic[0]."</a></span><span class=\"singer\">".$mymusic[1]."</span><span class=\"scrq\">".$time."</span><span class=\"play\"><a href=\"play.php?id=$mymusic[2]\" target=\"_blank\"><img src=\"$skinpath/$skin/images/icon_play.gif\" align=\"middle\"></a></span><span class=\"down\"><a href=\"down.php?id=$mymusic[2]\" target=\"_blank\"><img src=\"$skinpath/$skin/images/icon_down.gif\" align=\"middle\"></a></span><span class=\"sc\"><a href=\"musicbox.php?action=del&t=$mymusic[3]\" target=\"_blank\"><img src=\"$skinpath/$skin/images/delete.gif\" align=\"middle\"></a></span></li>\n";
 echo $listmsg;
 $query1=mysql_query("insert into hl_box values('$username','$mymusic[2]','$mymusic[0]','$mymusic[1]','$mymusic[3]')") or die ("更新音乐盒失败");
 }
     }
 else{
    $listmsg="<li>您还未收藏音乐,请先添加音乐到您的音乐盒!</li>";
$allmusic = 0;
    $leftnum=$maxboxnum-$allmusic;
echo $listmsg;
   }
}
?>只显示第一个用户的音乐盒数据,到第二个就显示更新音乐盒失败
但我单独打印$username却又可以把会员名全部显示出来
高人帮我看看

解决方案 »

  1.   

    将“$query1=mysql_query("insert into hl_box values('$username','$mymusic[2]','$mymusic[0]','$mymusic[1]','$mymusic[3]')") or die ("更新音乐盒失败");”中的“ or die ("更新音乐盒失败")”的代码删除,看一下程序具体报了什么错。
      

  2.   

     $query1=mysql_query("insert into hl_box values('$username','$mymusic[2]','$mymusic[0]','$mymusic[1]','$mymusic[3]')") or die ("更新音乐盒失败");===================================================================================================
    你这样不用连接符的混写sql语句应该是不对的,不明白你第一次循环为什么会成功。循环时顺便打印sql语句,就知道为什么更新失败了echo "insert into hl_box values('$username','$mymusic[2]','$mymusic[0]','$mymusic[1]','$mymusic[3]')";