2016-12-15 135 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