while($yytable_array = $db->fetch_array($sql_yytable))
首先考虑$sql_yytable这个sql语句是错误的  这个时候 将返回 “数据查询失败"while语句内是一个付值表达式 所以永远为真

解决方案 »

  1.   

    打印出sql语句$sql_yytable = "select * from yytable where uid = '$user_array[0]'"; 然后去数据库里面执行以下看看结果
      

  2.   

     //  根据查询条件获取 $sql 结果集     
    public function fetch_array($sql){    
        if($result = $this->query($sql)) {    //用while之后 这个判断一直都是成立的 所以就成死循环了       $rs = mysql_fetch_array($result, MYSQL_BOTH);            
           return $rs;                        
         } else { 
           echo "数据查询失败";
         }                   
      

  3.   

    while($yytable_array = $db->fetch_array($sql_yytable)){
    总是在执行查询 $db->fetch_array($sql_yytable) 并总是能返回第一条结果你的这个 fetch_array 方法只能用于查询一条记录的场合
    你应该再写一个 fetch_all 方法,查询并返回全部结果
      

  4.   


      public function fetch_all($sql){
        if($result = $this->query($sql))
        {
          while($r = mysql_fetch_array($result, MYSQL_BOTH)) {
            $res[] = $r;
          }
          return $res;
        }  else { echo "数据查询失败"; }
      }当然这样返回的是数组,你得按数组做后续工作