While循环执行错误
Posted
技术标签:
【中文标题】While循环执行错误【英文标题】:While loop execution error 【发布时间】:2018-02-03 13:04:42 【问题描述】:我的 sql 查询有问题。我必须在while循环中执行sql查询。下面是我的程序
<?php
$database = new Database();
$db = $database->getConnection();
$query = $db->query("Select * from cart");
$query->execute();
while($cd = $query->fetch(PDO::FETCH_ASSOC))
?>
<ul class="header-cart-wrapitem">
<li class="header-cart-item">
<div class="header-cart-item-img">
<img src="images/item-cart-01.jpg" >
</div>
<div class="header-cart-item-txt">
<a href="#" class="header-cart-item-name"><?php
$aa = $cd['cat'];
$ab = $cd['id2'];
$query = $db->query("Select * from $aa where id = $ab ");
$query->execute();
$cdd1 = $query->fetch(PDO::FETCH_ASSOC);
echo $cd2 = $cdd1['detail'];
?></a>
<span class="header-cart-item-info">
<?php echo $cd['num'] ?> x 123
</span>
</div>
</li>
</ul>
<?php
?>
我的第二个 sql 基于第一个 sql 运行。
我的问题 我只得到一行意味着它只执行一次。
我需要什么 我需要所有行。
【问题讨论】:
【参考方案1】:您正在循环内重用$query
变量。所以当循环重复并执行时
while($cd = $query->fetch(PDO::FETCH_ASSOC))
它现在从第二个查询中获取,而不是原始查询。
在循环中使用不同的变量。
$query2 = $db->query("Select * from $aa where id = $ab ");
$query2->execute();
$cdd1 = $query2->fetch(PDO::FETCH_ASSOC);
【讨论】:
谢谢先生您节省了我的时间。 @kishan:如果有帮助,请尝试接受答案。请参阅:***.com/help/someone-answers【参考方案2】:您在while
范围内重新定义了$query
。您在范围内使用另一个变量(例如 $query2 )。
【讨论】:
以上是关于While循环执行错误的主要内容,如果未能解决你的问题,请参考以下文章