gpt4 book ai didi

php - 购物车无法正常工作

转载 作者:行者123 更新时间:2023-11-29 22:26:54 25 4
gpt4 key购买 nike

我的购物车无法完全正常工作。数据库连接正常,产品及其数据显示在表中。但是,我无法将任何东西添加到我的购物车。购物车由index.php、cart.php、products.php组成。

Index.php 看起来像这样:

<?php

error_reporting(E_ALL); ini_set('display_errors', 1);

session_start();
require("includes/connection.php");
if(isset($_GET['page'])){

$pages=array("products", "cart");

if(in_array($_GET['page'], $pages)) {

$_page=$_GET['page'];

}else{

$_page="products";

}

}else{

$_page="products";

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/style.css" />

<title>Shopping Cart</title>


</head>

<body>

<div id="container">

<div id="main">

<?php require($_page.".php"); ?>

</div><!--end of main-->

<div id="sidebar">
<h1>Cart</h1>
<?php

if(isset($_SESSION['cart'])){

$sql="SELECT * FROM products WHERE productCode IN (";

foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}

$sql=substr($sql, 0, -1).") ORDER BY productName ASC";
$query=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($query)){

?>
<p><?php echo $row['productName'] ?> x <?php echo $_SESSION['cart'][$row['productCode']]['quantity'] ?></p>
<?php

}
?>
<hr />
<a href="index.php?page=cart">Go to cart</a>
<?php

}else{

echo "<p>Your Cart is empty. Please add some products.</p>";

}

?>

</div><!--end of sidebar-->

</div><!--end container-->

</body>
</html>

Cart.php 如下所示:

<?php

error_reporting(E_ALL); ini_set('display_errors', 1);

if(isset($_POST['submit'])){

foreach($_POST['quantity'] as $key => $val) {
if($val==0) {
unset($_SESSION['cart'][$key]);
}else{
$_SESSION['cart'][$key]['quantity']=$val;
}
}

}

?>

<h1>View cart</h1>
<a href="index.php?page=products">Go back to products page</a>
<form method="post" action="index.php?page=cart">

<table>

<tr>
<th>Name</th>
<th>Quantity</th>
<th>Price</th>
<th>Items Price</th>
</tr>

<?php

$sql="SELECT * FROM products WHERE productCode IN (";

foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}

$sql=substr($sql, 0, -1).") ORDER BY productName ASC";
$query=mysql_query($sql) or die(mysql_error());
$totalprice=0;
while($row=mysql_fetch_array($query)){
$subtotal=$_SESSION['cart'][$row['productCode']]['quantity']*$row['buyPrice'];
$totalprice+=$subtotal;
?>
<tr>
<td><?php echo $row['productName'] ?></td>
<td><input type="text" name="quantity[<?php echo $row['productCode'] ?>]" size="5" value="<?php echo $_SESSION['cart'][$row['productCode']]['quantity'] ?>" /></td>
<td><?php echo $row['buyPrice'] ?>$</td>
<td><?php echo $_SESSION['cart'][$row['productCode']]['quantity']*$row['buyPrice'] ?>$</td>
</tr>
<?php

}
?>
<tr>
<td>Total Price: <?php echo $totalprice ?></td>
</tr>

</table>
<br />
<button type="submit" name="submit">Update Cart</button>
</form>
<br />
<p>To remove an item set it's quantity to 0. </p>

products.php 看起来像这样:

<?php

error_reporting(E_ALL); ini_set('display_errors', 1);

if(isset($_GET['action']) && $_GET['action']=="add"){

$id=intval($_GET['id']);

if(isset($_SESSION['cart'][$id])){

$_SESSION['cart'][$id]['quantity']++;

}else{

$sql_s="SELECT * FROM products
WHERE productCode={$id}";
$query_s=mysql_query($sql_s) or die(mysql_error());
if(mysql_num_rows($query_s)!=0){
$row_s=mysql_fetch_array($query_s);

$_SESSION['cart'][$row_s['productCode']]=array(
"quantity" => 1,
"price" => $row_s['buyPrice']
);


}else{

$message="This product id it's invalid!";

}

}

}

?>
<h1>Product List</h1>
<?php
if(isset($message)){
echo "<h2>$message</h2>";
}
?>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
<th>Action</th>
</tr>

<?php

$sql="SELECT * FROM products ORDER BY productName ASC";
$query=mysql_query($sql) or die(mysql_error());

while ($row=mysql_fetch_array($query)) {

?>
<tr>
<td><?php echo $row['productName'] ?></td>
<td><?php echo $row['productDescription'] ?></td>
<td><?php echo $row['buyPrice'] ?>$</td>
<td><a href="index.php?page=products&action=add&id=<?php echo $row['productCode'] ?>">Add to cart</a></td>
</tr>
<?php

}

?>

</table>

我打开了错误报告,但收到以下错误:

Unknown column 'S10_1678' in 'where clause'

我的数据库中的“产品”表如下所示: http://i.stack.imgur.com/KrB8a.png

在我看来,代码中的所有内容都是正确的,但是这里出了什么问题?

最佳答案

请尝试在 $id 周围的 sql 语句中添加引号 - 我知道在您的情况下它是一个字符串(productCode),如下所示:

foreach($_SESSION['cart'] as $id => $value) {
$sql.="'".$id."',";
}

关于php - 购物车无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com