2011-09-27 49 views
0

所以我有一個購物車,工作正常,但我想顯示在每個循環以外的聯繫表單中的購物車的結果。如何顯示每個循環之外的數組?

我遇到的問題是每當我嘗試顯示$ Ptitle它只顯示最後一個添加到購物車。不是數組中標題的完整列表。我試過各種方法來顯示數組結果,但似乎沒有工作。看來我可以通過打印陣列

print_r ($contents); 

但是隻在每個循環內部,而不是外部。 下面是代碼,很抱歉,如果它很混亂。任何幫助,將不勝感激。

謝謝!

function showCart() { 
global $db; 
$cart = $_SESSION['cart']; 
if ($cart) { 
    $items = explode(',',$cart); 
    $contents = array(); 
    foreach ($items as $item) { 
     $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1: 1; 

    } 
    echo '<form action="http://www.changecompanies.net/dev/theme/cart_checkout.php?action=update" method="post" id="cart">'; 
    //$output[] = '<table>'; 
    ?> 
    <table id="cart"> 
       <tr> 
        <th>Quantity</th> 
        <th></th> 
        <th>Item</th> 
        <th>Product Type</th> 
        <th>Unit Price</th> 
        <th>Total</th> 
        <th>Remove</th> 
       </tr> 
    <?php 
    foreach ($contents as $id=>$qty) { 



     $sql = 'SELECT * FROM tccproducts WHERE id = '.$id; 
     $result = $db->query($sql); 
     $row = $result->fetch(); 
     extract($row); 

     $result = mysql_query("SELECT * FROM tccproducts WHERE Pid ='$id'")or die (mysql_error()); 
     //if (!$result); 
     //echo "no result"; 
     $myrow = mysql_fetch_array($result) or mysql_error('error!'); 
     $name = $myrow['Ptitle']; 
     //$name = substr($name,0,40); 
     $Pprice = $myrow['Pprice']; 
     $Ptitle = $myrow['Ptitle']; 
     $Pimage = $myrow['Pimage']; 
     $Pcat = $myrow['Pcategory']; 
     $mini = $myrow['Pminimum']; 

休息只是顯示購物車,並結束每個循環。

+0

爲什麼你不能將數組轉儲到foreach循環之外? –

+0

這就是我的問題星際....我可以顯示數組,但我不知道如何從它得到正確的值...例如,我可以顯示'Pids'A9,A9,A9,B12,B12 ,如果每個產品有3種,B12也是如此。但是,如何挖掘這些數字,並將標題,價格以及購物車上列出的其他所有內容顯示爲電子郵件消息? – Zanrok

回答

2

您正在購物車中的所有物品上運行循環,獲取有關該物品的詳細信息,然後將詳細信息存儲在各個變量中。在循環的每次迭代中,先前檢索的數據都會被下一行數據覆蓋。因此,您只能存儲來自所提取LAST項目的數據。

如果要存儲所有項目數據,則必須將每行存儲在箭頭中並在之後輸出,或者只是在獲取每行時輸出。

while($row = mysql_fetch(...)) { 
    echo <<<EOL 
<tr> 
    <td>{$quantity}</td> 
    <td>{$row['price']}</td> 
    etc... 
</tr> 
EOL; 
} 
+0

我明白你的意思,除了用戶「添加到」購物車的結果存儲在會話變量購物車中。那麼爲什麼我不能只引用這個變量並再次顯示呢? 如果我要使用你的解決方案,我會執行外部的foreach內部還是內部呢? – Zanrok

+0

我能夠在您的方法Marc上使用變體。 基本上,做了一個新的功能,並呼籲重複購物車變量......本質上是一個單獨的循環與不同的顯示方法。很棒!謝謝。 – Zanrok

相關問題