[英]PHP MYSQL Shopping Cart
我嘗試使用 php ang mysql 在 google 中搜索購物車中的代碼。 當我單擊“添加到購物車”按鈕時,我的 cart.php 中沒有顯示任何內容。 請幫我。
這是我的 product.php
<a class="btn btn-info btn-fill pull-right" href="index.php?page=inso94&action=add&prod_id=<?php echo $row['0'];?>">ADD TO CART</a>
這是我的cart.php
<?php
$prod_id = $_GET["prod_id"]; //the product id from the URL
$action = $_GET["action"]; //the action from the URL
switch($action) { //decide what to do
case "add":
$_SESSION['cart'][$prod_id]++; //add one to the quantity of the product with id $product_id
break;
case "remove":
$_SESSION['cart'][$prod_id]--; //remove one from the quantity of the product with id $product_id
if($_SESSION['cart'][$prod_id] == 0) unset($_SESSION['cart'][$prod_id]); //if the quantity is zero, remove it completely (using the 'unset' function) - otherwise is will show zero, then -1, -2 etc when the user keeps removing items.
break;
case "empty":
unset($_SESSION['cart']); //unset the whole cart, i.e. empty the cart.
break;
}
if($_SESSION['cart']) {
foreach($_SESSION['cart'] as $prod_id => $prod_quantity) {
$sql = mysql_query("SELECT * FROM product WHERE id = '$prod_id'");
if(isset($res)) {
while($result = mysql_fetch_assoc($sql)) {
$line_cost = $prod_price * $prod_quantity;
$total = $total + $line_cost;
?>
<tr>
<td><?php echo $result["prod_name"]; ?></td>
<td><?php echo $result["prod_code"]; ?></td>
<td><?php echo $result["prod_category"]; ?></td>
<td><?php echo $result["prod_price"]; ?></td>
<td><?php echo $result["prod_quantity"]; ?></td>
<td><?php echo "<a href='$_SERVER[PHP_SELF]$action=remove&prod_id={$result['prod_id']}' class='btn btn-warning btn-fill btn-sm pull-right'>Remove</a>"; ?></td>
<td><?php echo $line_cost; ?></td>
</tr>
<?php
}
}
}
} else {
echo "You have no items in your shopping cart.";
}
?>
您正在將 1 添加到產品 ID,但您尚未對其進行初始化。 首先,將以下語句添加到代碼頂部以啟動會話:
session_start();
現在檢查 $_SESSION['cart'] 是否存在。 如果沒有,請創建它。
if(!isset($_SESSION['cart'])
$_SESSION['cart'] = array();
當您要添加時,在 switch 語句中,檢查該產品是否已存在於購物車中,然后向其中添加一個,否則將其初始化為 1。
if(isset($_SESSION['cart'][$prod_id]))
$_SESSION['cart'][$prod_id]++;
else
$_SESSION['cart'][$prod_id] = 1;
您還沒有初始化 total 。 你代碼的一些邏輯有點不對勁。 while 循環沒有意義,因為每個 id 應該只有產品。 while 循環應該是 if 語句。
您的查詢和結果設置看起來都錯了。
$sql = mysql_query("SELECT * FROM product WHERE id = '$prod_id'");
if(isset($res)) {
while($result = mysql_fetch_assoc($sql)) {
$line_cost = $prod_price * $prod_quantity;
$total = $total + $line_cost;
?>
<tr>
<td><?php echo $result["prod_name"]; ?></td>
<td><?php echo $result["prod_code"]; ?></td>
<td><?php echo $result["prod_category"]; ?></td>
<td><?php echo $result["prod_price"]; ?></td>
<td><?php echo $result["prod_quantity"]; ?></td>
<td><?php echo "<a href='$_SERVER[PHP_SELF]$action=remove&prod_id={$result['prod_id']}' class='btn btn-warning btn-fill btn-sm pull-right'>Remove</a>"; ?></td>
<td><?php echo $line_cost; ?></td>
</tr>
<?php
}
}
}
} else {
我想這就是你想要的嗎?
$result = mysql_query("SELECT * FROM product WHERE id = '$prod_id'");
if(isset($result)) {
while($row = mysql_fetch_assoc($result)) {
$prod_price = $row['prod_price']
$line_cost = $prod_price * $prod_quantity;
$total = $total + $line_cost;
?>
<tr>
<td><?php echo $row ["prod_name"]; ?></td>
<td><?php echo $row ["prod_code"]; ?></td>
<td><?php echo $row ["prod_category"]; ?></td>
<td><?php echo $row ["prod_price"]; ?></td>
<td><?php echo $row ["prod_quantity"]; ?></td>
<td><?php echo "<a href='$_SERVER[PHP_SELF]$action=remove&prod_id={$result['prod_id']}' class='btn btn-warning btn-fill btn-sm pull-right'>Remove</a>"; ?></td>
<td><?php echo $line_cost; ?></td>
</tr>
<?php
}
}
}
} else {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.