我在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" alt="IMG">
</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运行。
我的问题 我只获得一行意味着它只执行一次。
我需要什么 我需要排好。
答案 0 :(得分:2)
您正在循环中重用$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);
答案 1 :(得分:0)
您在$query
范围内重新定义while
。 Yous在范围内使用另一个变量(例如$ query2)。