簡體   English   中英

PHP MYSQL 購物車

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM