无效的参数提供foreach php mysqli

时间:2016-12-15 23:15:15

标签: php mysqli foreach

我正在尝试从购物车展示产品,但我收到以下错误(见下文)。我真的不明白我做错了什么......详细的答案和解释会很好。我试图找到问题的解决方案但没有成功。 我理解 未定义的变量意味着什么,但我不知道在这种特殊情况下如何修复它。

  

注意:未定义的变量:行

     

警告:为foreach()提供的参数无效

<html>
    <body>
        <table>
            <tbody>
<?php
    require_once 'core/config.php';
    $cartQ  = $db->query("SELECT * FROM cart");
    $result = mysqli_fetch_assoc($cartQ);
    foreach ($row as $product) {
        $productQuery = $db->query("SELECT * FROM product INNER JOIN cart ON product.id=cart.product_id ");
        $product      = mysqli_fetch_assoc($productQuery);

        while ($row = mysqli_fetch_assoc($cartQ)) {
        }
?>
        <tr class="p">
            <td class="image"><img src="<?= $product['image_1']; ?>" /></td>
            <td class="name"><?= $product['prod_name']; ?></td>
            <td class="price"><?= money($product['price']); ?></td>
        </tr>

<?php
    }
?>

            </tbody>
        </table>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

摆脱第一个查询和foreach循环,不需要它们。 JOIN查询返回您需要显示的所有信息。

<html>
    <body>
        <table>
            <tbody>
<?php
    require_once 'core/config.php';
    $productQuery = $db->query("SELECT * FROM product INNER JOIN cart ON product.id=cart.product_id ");
    while ($product = mysqli_fetch_assoc($productQuery)) {
        ?>
        <tr class="p">
            <td class="image"><img src="<?= $product['image_1']; ?>" /></td>
            <td class="name"><?= $product['prod_name']; ?></td>
            <td class="price"><?= money($product['price']); ?></td>
        </tr>

        <?php
    }
?>

            </tbody>
        </table>
    </body>
</html>