函数num_a从一个表里读出属于一个类的聊天室名称,然后调用num_b读出各个聊天室的在线人数,然后用循环把数值加起来,返回总数,我是把聊天室名称写进数组了,但调用函数不行!

解决方案 »

  1.   

    我这段是把NUM_B的代码放进来了,本来我是直接调用的,可是不管用,我的NUM_A原来是这样的:function num_a($chatroom)//读取聊天室分类总人数
    {
    $conn=mysql_pconnect("localhost","root","mysql_myzone") or die(mysql_error());
    mysql_select_db("iuServices",$conn);
    $sql = "select channame from chandb where chantype = '$chatroom'";
    $ret=mysql_query($sql,$conn) or die(mysql_error());
    $a_count=mysql_num_rows($ret);
    for($i=1;$i<=$a_count;$i++)
    {
    $row=mysql_fetch_row($ret);
    $a_num[$i]=$row[0];
    }for($i=1;$i<=$a_count;$i++)
    { $num+=num_b($a_num[$i]);
    //echo $i."--".$a_num[$i];
    }
    //$num=num_b($a_num[9]);这里测试是应该肯定不是0的,但是调用也没有提示出错,就是返回结果不正确
    //echo "--".$num;
    //$num = $row["num"];
    if($num == '')
    {
    $num = 0;
    }
    return "<font color=red>".$num."</font>";
    }
    ?>
      

  2.   

    写得很乱,
    $sql = "Select users as num from channel where name = '$a_num[$i]'";
    $ret=mysql_query($sql,$conn) or die(mysql_error());
    $row = mysql_fetch_array($ret);
    $num = $row["num"];
    if($num == '')
    {
    $num = 0;
    }
    这段代码和num_b函数所完成的功能是一样的!
      

  3.   

    就是呀,我本来是直接调用NUM_B的,但是结果不对就怀疑是不能调用,就把它的内容放竖起来了,但是结果还是一样的,不知道问题出在哪里了?
      

  4.   

    你可以一步一步的调试了,在那个$num+=num_b($a_num[$i]);行下输出$num.建议,将$num初始化为0,有时候这样很容易出错的!
      

  5.   

    字段users是不是指的是在线人数!
      

  6.   

    写的太乱了,最好贴出原始的代码、库结构和部分数据以便测试!其实没有必要那么复杂
    $conn=mysql_pconnect("localhost","root","*****") or die(mysql_error());
    mysql_select_db("iuServices",$conn);
    $sql = "Select chandb.channame,channel.users from chandb,channel where chandb.channame=channel.name and chandb.chantype = '$chatroom'";
    $ret=mysql_query($sql,$conn) or die(mysql_error());
    这样得到的结果含有两列,1、分类名 2、该分类的人数
    把第二列相加即为总人数