while嵌套while循环,为什么只循环了外边的while

baidu_24358091 2014-12-22 02:52:50
主分类:

$query=$db->query("select * from `p_newsclass` where `f_id`='0' "); //f_id=0 主分类;
while($row=$db->fetch_array($query)){
echo $row[id].$row[name];
}

子分类:
$sonquery=$db->query("select * from `p_newsclass` where `f_id`='$row[id]'");
while($son=$db->fetch_array($sonquery)){
echo $son[id].$son[name];
}
-----------------------------------------------------------------
把两个合并:
$query=$db->query("select * from `p_newsclass` where `f_id`='0' "); //f_id=0 主分类;
while($row=$db->fetch_array($query)){
echo $row[id].$row[name];


$sonquery=$db->query("select * from `p_newsclass` where `f_id`='$row[id]'");
while($son=$db->fetch_array($sonquery)){
echo $son[id].$son[name];


}
}

为什么结果: 外循环while只循环了一次, 嵌套的while循环正常;
求问: while嵌套while, 为什么外边的while只循环一次?!
...全文
530 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-12-23
  • 打赏
  • 举报
回复
问题就出在 $this->result = $result; 上 内层的查询结果呢把外层的覆盖掉了
傲雪星枫 2014-12-22
  • 打赏
  • 举报
回复

$query=$db->query("select * from `p_newsclass` where `f_id`='0' "); //f_id=0 主分类;
$result = array();
while($row=$db->fetch_array($query)){
    $result[] = $row;
}

print_r($result);
把数组打印出来看看有什么。
GerBawn 2014-12-22
  • 打赏
  • 举报
回复
看起来你用的好像是mysqli类,但是这个类的query返回是mysqli_result类,mysqli_result的fetch_array()不是这么用的。 如果是mysqli类,应该是这样吧

$query=$db->query("select * from `p_newsclass` where `f_id`='0' "); //f_id=0 主分类;
while($row=$query->fetch_array()){ 
echo $row[id].$row[name];


$sonquery=$db->query("select * from `p_newsclass` where `f_id`='$row[id]'");
while($son=$sonquery->fetch_array()){
echo $son[id].$son[name];
baidu_24358091 2014-12-22
  • 打赏
  • 举报
回复
public function query($sql) { if ($sql == "") { $this->show_error("SQL语句错误:", "SQL查询语句为空"); } $this->sql = $sql; $result = mysql_query($this->sql, $this->conn); if (!$result) { //调试中使用,sql语句出错时会自动打印出来 if ($this->show_error) { $this->show_error("错误SQL语句:", $this->sql); } } else { $this->result = $result; } return $this->result; } 这是query的写法; 难道与return有关系? 这个函数应该如何修正,不用return要写什么;
xuzuning 2014-12-22
  • 打赏
  • 举报
回复
着与你的 db 类的 query 写法有关 没看到,不好说
吾友客 2014-12-22
  • 打赏
  • 举报
回复
你的主分页的数据是不是只有一条啊?
智商众筹 2014-12-22
  • 打赏
  • 举报
回复
确定主分类不只有1条结果吗? 确定嵌套时外层真的只运行了一次吗?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧