2016-12-15 122 views
-4

我试图从购物车显示产品,但收到以下错误(请参阅下文)。我真的不明白我做错了什么......详细的解释与解释将是很好的。我试图找到解决我的问题没有成功。 我明白什么是未定义的变量意味着,但我不知道如何解决它在这种特殊情况下。提供的无效参数foreach php mysqli

注意:未定义的变量:行

警告:()提供的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

那么,看看错误,看看你的代码,$ row定义在哪里? – Devon

+0

看看这行'foreach($ row as $ product){'变量'$ row'。在上面的行中,您正在设置一个var nammed'$ result',可能它是您打算引用的。或者你可能在代码之间省略了一段代码 – happymacarts

+0

@Devon:伙计我一直在睡觉中行走好几天。放松。 – Breathe

回答

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> 
+0

昨天我试了这个,它不工作,结果我有一个错字。我要睡觉。多谢,伙计。 – Breathe