cart系统与数据库的连接

shyt4zoc  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(315)

我目前有一个工作的购物车系统,当单击“addtocart”时,产品代码存储在$\u session['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>";
                }
            }
            ?>
iibxawm4

iibxawm41#

好吧,你应该检查你的web服务器的错误日志,以获得确切的错误。错误日志通常位于/var/log/apache2文件夹中。以下可能会有所帮助:
您需要使用session\u start()初始化php会话。session\u start应该在第一个if语句之前调用。
如果您的产品代码是一个字符串,那么它应该用引号括起来,因此您的sql查询应该是:“select name from studentcomforts where product\u code='$productcode';
可以将if和first-else语句组合起来。例如:

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

相关问题