2016-07-28 99 views
1

所以我在我的頁面上有這段代碼menu.php。它顯示我數據庫內的所有產品,用戶可以選擇訂購哪一種產品。使用foreach循環,如果有更多的項目添加

$prod_query=mysqli_query($con,"SELECT * FROM tblproducts"); 
$num_rows_prod=mysqli_num_rows($prod_query); 

echo "<div class='row'>"; 

while($fetch=mysqli_fetch_assoc($prod_query)) 
    { 
    $ppid=$fetch['p_pid']; 
    $pname=$fetch['p_name']; 
    $pprice=$fetch['p_price']; 
    $pimg='<img src="data:image/jpeg;base64,'. base64_encode($fetch['p_image']). '" width="100%" height="280">'; 
echo " 
<form method='post' action='order.php'> 
<div class='col-lg-4'> 
<div class='panel panel-primary'> 
<div class='panel-heading'> 
<h3 class='panel-title'>$pname | ₱$pprice</h3> 
</div> 
<div class='panel-body'> 
$pimg<hr /> 
<input type='hidden' name='id' value='$ppid'> 
<button class='btn btn-primary' name='btnaddcart' type='submit'>Order Now!</button> 
</div> 
</div> 
</div> 
</form> "; 
    } 

echo "</div>"; 

當用戶選擇訂購哪一個,他現在可以點擊訂購按鈕現在,現在會重定向到order.php頁。

而在我的order.php頁面中,它顯示了他通過使用$ _POST來確定它所選擇的產品的表格,其ID爲menu.php。

$p=$_POST['id']; 
$order_query=mysqli_query($con, "SELECT * FROM tblproducts WHERE p_pid=$p"); 
$num_rows_order=mysqli_num_rows($order_query); 

while($fetch=mysqli_fetch_assoc($order_query)) 
{ 
    $ppid=$fetch['p_pid']; 
    $pname=$fetch['p_name']; 
    $pprice=$fetch['p_price']; 
} 

foreach ($order_query as $p) { 
echo "<form class='form-horizontal' action='' method='POST'> 
<fieldset> 
<legend>Place Order</legend> 
<table class='table table-striped table-hover'> 
<thead> 
<tr class='success'> 
    <th>Name</th> 
    <th>Price</th> 
    <th>Quantity</th> 
</tr> 
</thead> 
<tbody> 
<tr class='active'> 
    <td>$pname</td> 
    <td>₱$pprice /each</td> 
    <td><div class='form-group'> 
    <div class='col-lg-4'> 
    <input class='form-control' name='inputquant' value='1' type='number'> 
</div> 
</div></td> 
</tr> 
</tbody> 
</table>"; 
} 
    ?> 

<div class="form-group"> 
    <div class="col-lg-10 col-lg-offset-2"> 
    <button type="submit" name="btnaddorder" class="btn btn-primary">Add More Order</button> 
    </div> 
     </div> 

,你可以在的foreach和PHP看到外面有一個添加更多的命令按鈕,在那裏,如果他/她想要添加更多的產品,用戶可以選擇。我想要做的是當他點擊按鈕時,它會再次被重定向到菜單,如果他選擇另一個產品添加到他的購物車上,它將被列在頁面上。但是當我這樣做的時候,它所做的只是通過單擊添加更多產品來替換舊值。就像是; '首先我點了一份披薩,然後決定添加一顆玉米片。訂單頁面顯示玉米片和覆蓋披薩,而不是顯示他們兩個。我一直在困擾這個問題一段時間,並決定現在就問這裏。如果有人能幫助我,這將是非常好的。提前致謝!

+0

你的問題有許多解決方案。將用戶選擇的產品存儲在數據庫中,存儲在'$ _SESSION'中。這取決於你自己決定。 –

+0

@u_mulder您認爲最簡單或首選的解決方案最好嗎?因爲當我使用會話時,它只保存一個產品。在數據庫上時,我不知道如何去做。 – Sync

+0

沒有最佳解決方案。如果你不能在會話中存儲某些內容 - 你顯然會這樣做__wrong__,並可以提出另一個問題。 –

回答

1

order.php

//make sure session is started 
$p = $_POST['id']; 

//store id's as an array 
$_SESSION['id'][] = $p; 

//use ',' to combine id's 
$p = implode(',', $_SESSION['id']); 

//MySQL IN Clause 
$order_query=mysqli_query($con, "SELECT * FROM tblproducts WHERE p_pid IN ($p)"); 
$num_rows_order=mysqli_num_rows($order_query); 
+0

你以爲你可以一步一步地引導我,非常感謝你! – Sync