php while循环 不输出,php while循环退不出是什么问题?

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 "数据查询失败"; } }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值