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 "".$yytable_array[0]."";echo "".$yytable_array[1]."";echo "".$yytable_array[2]."";echo "".$yytable_array[3]."";echo "".$yytable_array[4]."";echo "".$yytable_array[5]."";echo "";}echo "";//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 "数据查询失败"; } }
当然这样返回的是数组,你得按数组做后续工作