-2

我目前正在按照在线教程设计购物车。

我尽可能地关注每个细节,并进行了一些更改,例如变量名等。

我已经检查了下面的代码,但是当我单击“添加到购物车”时,它不会在侧栏中显示添加的项目。

关于问题可能是什么的任何建议?(代码只是与侧边栏相关的部分,产品 php 在单独的 php 文件中。)

<div id="sidebar">

<h1>Cart</h1>
<?php
if(isset($_SESSION['cart'])){
$sql = "SELECT * FROM products WHERE SKU IN("; 
foreach($_SESSION['cart'] as $id => $value){
$sql .= $id. ",";
}
$sql = substr($sql,0,-1) . ") ORDER BY SKU ASC";
$query = mysql_query($sql);
while($row = mysql_fetch_assoc($query)){
?>
<p><?php echo $row['name']; ?><?php echo $_SESSION['cart'][$row['SKU']]['quantity']; ?></p>
<a href="index.php?page=cart">Go To Cart</a>
<?php
}
}else {
echo "<p>Your part is empty. <br />Please add some products</p>";
}
?>

</div>

产品 PHP 文件中添加的代码部分:

<?php

if(isset($_GET['action']) && $_GET['action'] == "add"){
$id = $_GET['id'];
if(isset($_SESSION['cart'][$id])){
$_SESSION['cart'][$id]['quantity']++;
} else {
$sql2 = "SELECT * FROM products WHERE SKU=$id";
$query2 = mysql_query($sql2);

if(mysql_num_rows($query2) != 0){
$row2 = mysql_fetch_array($qery2);
$_SESSION['cart'][$row2['SKU']] = array("quantity" => 1, "price" => $row2['price']);
} else {
$message = "This product ID is invalid";
}
}
}


?>
4

2 回答 2

0

You have brackets in your query.

Change

$sql2 = "SELECT * FROM products WHERE SKU=[$id]";

to

$sql2 = "SELECT * FROM products WHERE SKU=$id";
于 2013-06-14T22:27:24.367 回答
0

我的猜测是if(isset($_SESSION['cart']))返回 false .. 根据您的代码,如果这是正确的,则不会输出任何内容。

编辑:

我看到实际上echo "<p>Your part is empty. <br />Please add some products</p>";会被执行,但仍然 - 我没有看到 $_SESSION['cart'] 在任何地方被初始化/设置..

于 2013-06-14T22:36:19.250 回答