当前位置:Gxlcms > PHP教程 > phpwhile循环退不出是什么问题?

phpwhile循环退不出是什么问题?

时间:2021-07-01 10:21:17 帮助过:24人阅读

check_user_login();   //检查用户是否登录$db->createcon();            //建立连接// $user=$_SESSION["user"];$user = "libero";           //测试临时使用//   执行 user数据表 选取user数据$sql_user = "select * from user where user = '$user'";$user_array  = $db->fetch_array($sql_user);//  执行 yytable 数据  获取 yytable 所有数据$sql_yytable = "select * from yytable where uid = '$user_array[0]'";echo "" ;while($yytable_array = $db->fetch_array($sql_yytable)){	echo "";	echo "";	echo "";	echo "";	echo "";	echo "";	echo "";			echo "";	}echo "
".$yytable_array[0]."".$yytable_array[1]."".$yytable_array[2]."".$yytable_array[3]."".$yytable_array[4]."".$yytable_array[5]."
";//dbclassquery($sql)) { $rs = mysql_fetch_array($result, MYSQL_BOTH); return $rs; } else { echo "数据查询失败"; } } // 数据库查询执行语句 public function query($sql){ mysql_query("set names utf8"); return mysql_query($sql); } // loop 更具结果集 获取数组 public function loop_query($result){ return mysql_fetch_array($result); } //关闭数据库连接 public function close(){ return mysql_close(); } } } ?>


回复讨论(解决方案)

while($yytable_array = $db->fetch_array($sql_yytable))

首先考虑$sql_yytable这个sql语句是错误的 这个时候 将返回 “数据查询失败"

while语句内是一个付值表达式 所以永远为真

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

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

while($yytable_array = $db->fetch_array($sql_yytable)){
总是在执行查询 $db->fetch_array($sql_yytable) 并总是能返回第一条结果

你的这个 fetch_array 方法只能用于查询一条记录的场合
你应该再写一个 fetch_all 方法,查询并返回全部结果

while($yytable_array = $db->fetch_array($sql_yytable)){
总是在执行查询 $db->fetch_array($sql_yytable) 并总是能返回第一条结果

你的这个 fetch_array 方法只能用于查询一条记录的场合
你应该再写一个 fetch_all 方法,查询并返回全部结果 大神你说的对 我一直只循环输出 第一条语句,如果想循环出其他全部结果,具体请明示

// 根据查询条件获取 $sql 结果集
public function fetch_array($sql){
if($result = $this->query($sql)) { // 用while之后 这个判断一直都是成立的 所以就成死循环了 $rs = mysql_fetch_array($result, MYSQL_BOTH);
return $rs;
} else {
echo "数据查询失败";
}
} 知道问题在哪儿了,关键是如何解决啊 我想输出所有符合查询条件的 结果

  public function fetch_all($sql){    if($result = $this->query($sql))    {      while($r = mysql_fetch_array($result, MYSQL_BOTH)) {        $res[] = $r;      }      return $res;    }  else { echo "数据查询失败"; }  }

当然这样返回的是数组,你得按数组做后续工作

人气教程排行