2016-07-28 5 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ページには、menu.phpのIDに$ _POSTを使用して、彼が選択した製品の表が表示されます。あなたはのforeachと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> 

は、彼/彼女がより多くの製品を追加したい場合は、ユーザが選択することができ、より注文ボタンを、追加があります。私がしようとしているのは、彼がボタンをクリックしたときに再びメニューにリダイレクトされ、カートに追加する別の製品を選択すると、そのページにリストされます。しかし、私がそれをすると、それはすべて、古い値を新しい製品に置き換えることです。そのような; '最初にピザを注文し、ナチョスを追加することにしました。注文ページにはナチョウが表示され、ピザは両方を表示する代わりに上書きされます。私はしばらくの間この問題に悩まされており、今ここで尋ねることに決めました。もし誰かが私にこれを手伝ってもらえると本当に素晴らしいだろう。前もって感謝します!

+0

あなたの質問は、多くのソリューションを提供しています。データベースにユーザが選択した商品をストアし、 '$ _SESSION'に保存します。決定するのはあなた次第です。 –

+0

@u_mulderあなたが最も簡単だと思われる解決策は何ですか?セッションを使用すると、1つの製品しか保存されません。データベース上で、私はそれを行う方法がわかりません。 – 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

関連する問題