执行到getCommendById($row["cmdname"])递归函数时就死循环了

解决方案 »

  1.   

    else {
         break;
      }
      return $return_value;
    =>
      else {
         return $return_value;
    }
      

  2.   

    break;我是暂时放在那里的,里面还要写条件语句
      

  3.   

    要看你的数据。
    如果usreinfo里有
     cmdname username
      aaa     bbb
      bbb     aaa 这样的2条或更多条互相循环的数据,自然就会死循环了
      

  4.   

    helloyou0 正解.
    建议作一个参数限制递归次数.
      

  5.   

    他前面出来的值都放在return_value里了,
    或者可以search这个值一下,避免循环。不过要看他这个函数的原意是什么
      

  6.   

    如果其他user的cmdname也有相同的那岂不是被屏蔽掉了!就是应该让他说说需要实现什么.
      

  7.   

    function getCommendById($user) { 
      global $db, $dc_money, $return_value;
      $query = $db -> query("SELECT cmdname FROM userinfo WHERE username = '". $user ."'");
      $row = $db -> fetch_array($query);
      if($row["cmdname"] <> "") {
         $return_value .= $row["cmdname"].",";
         getCommendById($row["cmdname"]);
      } 
      else {
         break;
      }
      return $return_value;
    }
    这个怎么看怎么是个死循环函数,从数据库里取得的一直是那个数..
      

  8.   

    function getCommendById($user) { 
      global $db, $dc_money, $return_value;
      $i=0;
      $query = $db -> query("SELECT cmdname FROM userinfo WHERE username = '". $user ."'");
      $row = $db -> fetch_array($query);
      if(($row["cmdname"] <> "")&&($i<mysql_num_rows($row)) {
         $return_value .= $row["cmdname"].",";
         getCommendById($row["cmdname"]);
         $i++;
      } 
      else {
         break;
      }
      return $return_value;
    }