购物车系统连接到数据库

Cart system connection to database

我目前有一个可用的购物车系统,当单击 "addToCart" 时,产品代码存储在 $_SESSION['cart'] 数组中,然后在下拉菜单中打印出来,如果没有值存储然后打印 "No items in cart"。这完全可以正常工作,但是当我尝试使用产品代码从数据库中提取其余项目数据时,我收到 500 内部服务器错误,但是这种连接到数据库的方法工作得很好,任何建议将不胜感激。

<div class="dropDownCart">
        <button onclick="dropDownCart()" class="dropDownCartBtn">Cart</button>
        <div id="dropDownCartID" class="dropDownCartContent">
            <?php
            if ($_SESSION['cart'] === null) {
                echo "<span class='noItems'>No items in cart</span>";
            } elseif (!isset($_SESSION['cart'])) {
                echo "<span class='noItems'>No items in cart</span>";
            } else {
                require_once("dbConnection.php");
                $dbConn = getConnection();
                foreach ($_SESSION['cart'] as $productCode) {
                    $sqlQuery = "SELECT Name FROM studentcomforts WHERE Product_Code = $productCode";
                    $queryResult = $dbConn->query($sqlQuery);
                    $rowObj = $queryResult->fetchObject();
                        echo "<span class='cartItem'>
                                $rowObj->Name
                            </span>";
                }
            }
            ?>

那么您应该检查您的网络服务器错误日志以了解确切的错误。错误日志通常位于 /var/log/apache2 文件夹中。以下内容可能有所帮助:

您需要使用 session_start() 初始化 Php 会话。 session_start 应该在第一个 if 语句之前调用。

如果您的产品代码是字符串,则应将其括在引号中,因此您的 sql 查询应为:"SELECT Name FROM studentcomforts WHERE Product_Code = '$productCode'";

您可以组合 if 和第一个 else 语句。例如:

if ($_SESSION['cart'] === null || !isset($_SESSION['cart']))