循环执行错误

时间:2018-02-03 13:04:43

标签: php sql sql-server

我在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运行。

我的问题 我只获得一行意味着它只执行一次。

我需要什么 我需要排好。

2 个答案:

答案 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)。