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循环执行错误的主要内容,如果未能解决你的问题,请参考以下文章

若k为整型,以下while循环执行( )次.

Python - While 错误循环

无法进入while循环:“分段错误”

在C中的while循环或for循环之后没有代码执行[重复]

带有scrapy的while循环中的ReactorNotRestartable错误

java第三章补充