echo $row[id]."<br>";//值分别是11,12,13这个输出了几个ID值?你最好不要在两个函数里面都使用$sql和$result相同的变量名

解决方案 »

  1.   

    http://www.eaoo.com/design/list.asp?classid=2&Nclassid=9
      

  2.   

    主啊!!!!
    不要答非所问吧!!!!
    $id=4;//假设值为4,这里由传值而定!!function chanp_z($id)
    {
    global $Table,$db_link,$Bt;
      $sql="select * from $Table[zt] where zhuiid='$id'";
    $result=$db_link->query($sql);$i=0;
    while($row=$db_link->fetch_array($result))
    {
    echo $row[id]."<br>";//值分别是11,12,13(这里是举列子值假设为11,12,13)这个值会随chanp_z($id)里$id变化,所返回不同的值。
    chanp_z_mess($row[id]);//传值该是chanp_z_mess(11),chanp_z_mess(12),chanp_z_mess(13)
    //这里也随之改变,传给chanp_z_mess(这里也改变的)
    }}function chanp_z_mess($id)//__接收到就上面chanp_z_mess($row[id])传来的值,上面变了,这里也就变了
    {
    global $Table,$db_link,$Bt;
    $sql="select * from $Table[index] where fenid='$id'";
    $result=$db_link->query($sql);
    while($row=$db_link->fetch_array($result))
    {
    echo $row[id];
    echo $row[messgbt];//读出应该是三条数据,当我这里的值,也会改变!!!
    echo "<hr>";
    }}
    //_______能明白吧!!!如果手工给chanp_z_mess($id)里的id值,数据库里有上千万个id,那不要累死
    //_高手在吗?????????????
    for($i=0;$i<5;$i++)
    {
    chanp_z_mess($id);//这样就可以把值,传出来5个值,
    }
    //__________有办法解决吗???,难到要手工写值,真不想!!
      

  3.   

    首先确定
    select * from $Table[zt] where zhuiid='4'
    确实返回了三条记录另外$row[id]这样的写法可以通过吗?会不会使这里出现异常造成后面的处理混乱?把类似的语句改成规范写法,索引用引号界定,即$row['id']
      

  4.   

    看来PHP高手都睡觉了!!!!
    还是没有解决!!!!
    我看只有手工写id值 了!!
    代码是没有问提的!!
    function chanp_z($id)
    {
    global $Table,$db_link,$Bt;
      $sql="select * from $Table[zt] where zhuiid='$id'";
    $result=$db_link->query($sql);$i=0;
    while($row=$db_link->fetch_array($result))
    {
    echo $row[id]."<br>";//值分别是11,12,13(这里是举列子值假设为11,12,13)这个值会随chanp_z($id)里$id变化,所返回不同的值。
    chanp_z_mess($row[id]);//传值该是chanp_z_mess(11),chanp_z_mess(12),chanp_z_mess(13)
    //这里也随之改变,传给chanp_z_mess(这里也改变的)
    }}
    只可把chanp_z_mess($row[id])注释掉!!想要的id值都正确的显出来!!!
    如打开,想要id 值,只能显一个!!没有用的!!
      

  5.   

    这个函数里面的变量换换名试一下;
    function chanp_z_mess($id)
    {
    global $Table,$db_link,$Bt;
    $sql1="select * from $Table[index] where fenid='$id'";
    $result1=$db_link->query($sql1);
    while($row1=$db_link->fetch_array($result1))
    {
    echo $row1['id'];
    echo $row1['messgbt'];//读出应该是三条数据
    echo "<hr>";
    }}
      

  6.   

    $id=4;
    chanp_z($id);
    function chanp_z($id)
    {
    global $Table,$db_link,$Bt;
      $sql="select * from $Table[zt] where zhuiid='$id'";
    $result=$db_link->query($sql);$i=0;
    while($row=$db_link->fetch_array($result))
    {
    echo $row[id]."<br>";//值分别是11,12,13
    chanp_z_mess($row[id]);//传值该是chanp_z_mess(11),chanp_z_mess(12),chanp_z_mess(13)
    }}function chanp_z_mess($id1)//改了
    {
    global $Table,$db_link,$Bt;
    $sql="select * from $Table[index] where fenid='$id1'";//改了
    $result=$db_link->query($sql);
    while($row=$db_link->fetch_array($result))
    {
    echo $row[id];
    echo $row[messgbt];//读出应该是三条数据
    echo "<hr>";
    }}
    //结果只接收到了11,读出的数据也是11信息!!
    问题依然存在,结果只接收到了11,读出的数据也是11信息
    好闷啊!!
      

  7.   

    ustb(偶然)说的很对,迭归
    我也在想为什么不行,没有道理!!!!
    用for循环,可以迭归,while也可以迭归,
    为什么从数据库读出就不行呢????
    __________________________________
    板主如果看到,帮忙拿出来讨论一下PHP迭归
    为什么学出现,这样的怪现象!!!!!
    _________________对初学者,和高手都有帮助!!!!
      

  8.   

    板主如果看到,帮忙拿出来讨论一下PHP迭归
    为什么学出现,这样
      

  9.   

    板主如果看到,帮忙拿出来讨论一下PHP迭归
    为什么学出现,这样
      

  10.   

    你在数据库操作中使用了类
    各函数中使用的是同一个该类的实例
    通常书写类的时候是不考虑多个查询的,所以后面的查询会覆盖掉前面的查询当把$db_link->query($sql);直接用数据库函数书写时
    mysql_query($sql);
    就不会出现你说的现象
      

  11.   

    你在数据库操作中使用了类
    各函数中使用的是同一个该类的实例
    通常书写类的时候是不考虑多个查询的,所以后面的查询会覆盖掉前面的查询当把$db_link->query($sql);直接用数据库函数书写时
    mysql_query($sql);
    就不会出现你说的现象