购物车系统连接到数据库
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']))
我目前有一个可用的购物车系统,当单击 "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']))