echo $name[$i];应该用return $name[$i]返回一个值

解决方案 »

  1.   

    把 @mysql_free_result($result);
    "@"这个符号去掉看看有什么结果?这个符号屏蔽错误信息
      

  2.   

    <?php
    function daohang($id,$db_pro,$class,$table)
       {
       $id="id='$id'";
       $upid="upid='$upid[$i+1]'";
       for ($i=$class;$i>=1;$i--)
          {
      if ($i==$class)
         {
     $tid=$id;
     }
     else
     {
     $tid=$upid;
     }
      $query="select id,name,class,upid from ".$db_pro.$table." where ".$tid." and class='".$class."'";
      $result=mysql_query($query);
      $row=@mysql_fetch_array($result);
      $id[$i]=$row['id'];
      $name[$i]=$row['name'];
      $class[$i]=$row['class'];
      $upid[$i]=$row['upid'];
      }
      @mysql_free_result($result);
       $abc="";
       for ($i=1;$i<=$class;$i++)
          {
             $abc .= $name[$i];
    //echo $name[$i];
           }
    return $abc;
       }
    ?>
      

  3.   

    表menuclass的class字段的类型?
      

  4.   

    表menuclass的class字段的类型?
    这个是 数字类型 不过 好象 与那个 字段的 ‘’无关样 现在就是 好象是个死循环 输出的同最后一个字段的重复
      

  5.   

    谢谢楼上各位其实问题的关键在$upid="upid='$upid[$i+1]'";把这个$i+1 先赋给一个变量就可以了不过还有个新问题 无论是用我的 那个echo $name[$i];还是用 wen8u8 的那种方式 输出的都是最后得到的那条记录的重复!不知道是怎么回事!!
      

  6.   

    修改后的函数代码如下:function daohang($id,$db_pro,$class,$table)
       {
       $id="id='$id'";   
       for ($i=$class;$i>=1;$i--)
          {   
      if ($i==$class)
         {
     $tid=$id;
     }
     else
     {
     $m=$i+1;
             $upid="upid='$upid[$m]'";
     $tid=$upid;
     }
      $query="select id,name,class,upid from ".$db_pro.$table." where ".$tid." and class='".$class."'";
      $result=mysql_query($query);
      $row=@mysql_fetch_array($result);
      $id[$i]=$row['id'];
      $name[$i]=$row['name'];
      $class[$i]=$row['class'];
      $upid[$i]=$row['upid'];
      }
      @mysql_free_result($result);
       $abc="";
       for ($i=1;$i<=$class;$i++)
          {
      $abc .= $name[$i]." > ";
      //echo $class;
      }
       return $abc;
       }
      

  7.   

    caotian2000(谢谢支持,努力冲星) ( ) 信誉:100    Blog echo $name[$i];应该用return $name[$i]返回一个值---------------------------------------------------------------------------------因为你的SQL语句的问题
      

  8.   

    在这个函数中 用 return  和 echo $name[$i];得到的结果是一样的!!!
      

  9.   

    $upid="upid='$upid[$m]'";
    这句很奇怪,你前面循环赋的值,到这句就被冲掉了
    下一次的upid的值应该就不对了
      

  10.   

    $upid="upid='$upid[$m]'";
     $tid=$upid;这两句直接写成 
    $tid="upid='{$upid[$m]}'";
      

  11.   

    问题解决了不过 这个函数最多支持四级 分类超过四级 得到的那个 $id[$i]  就是一个错误的了不晓得怎么回事要是能支持五级该多好哈