PHP购物车无法正常工作
我的购物车坏了 如果我向购物车添加一个项目,它会相应地工作,但当我添加第二个或多个项目时,购物车的行为似乎很奇怪 添加第二项时,第二项的数量从2开始 新添加项目的数量从购物车中显示的项目数量开始。它还随购物车中的物品数量而增加 添加第三个项目后,该项目的显示次数与购物车中的项目数量相同 如果购物车中存在商品,如何将其更改为添加单个商品并仅增加一个 提前谢谢PHP购物车无法正常工作,php,Php,我的购物车坏了 如果我向购物车添加一个项目,它会相应地工作,但当我添加第二个或多个项目时,购物车的行为似乎很奇怪 添加第二项时,第二项的数量从2开始 新添加项目的数量从购物车中显示的项目数量开始。它还随购物车中的物品数量而增加 添加第三个项目后,该项目的显示次数与购物车中的项目数量相同 如果购物车中存在商品,如何将其更改为添加单个商品并仅增加一个 提前谢谢 <?php require "core.inc.php"; require "connect.inc.php"; ?&
<?php
require "core.inc.php";
require "connect.inc.php";
?>
<html>
<head>
<meta charset="UTF-8">
<title>Winkelwagen</title>
<link rel="stylesheet" type="text/css" href="winkelwagen.css" />
<link rel="stylesheet" type="text/css" href="topAndMenuHeader.css" />
</head>
<body bgcolor="#8A8B93">
<div id="container">
<?php include "topAndMenuHeader.php"; ?>
<div id="content">
<p class="opmaakTitel">Winkelwagen</p>
<?php
if ( isset($_GET['itemID']) ) {
$itemID = $_GET['itemID'];
$sql = "SELECT * FROM items WHERE id=$itemID";
if ( $query = mysql_query($sql) ) {
$numRows = mysql_num_rows($query);
if ( $numRows == 1 ) {
$artID = mysql_result($query, 0, 'id');
$artNaam = mysql_result($query, 0, 'artNaam');
$artPrijs = mysql_result($query, 0, 'artPrijs');
$artAfbeelding = mysql_result($query, 0, 'artAfbeelding');
$artAantal = 1;
$index = -1;
if ( isset($_SESSION['cart']) ) {
unserialize(serialize($_SESSION['cart']));
for ( $i = 0; $i < count($_SESSION['cart']); $i++ )
{
if ( $_SESSION['cart'][$i]['id'] ==
$_GET['itemID'] ) {
$index = $i;
}
if ( $index == -1 ) {
array_push($_SESSION['cart'],
array('id'=>$artID, 'naam'=>$artNaam, 'prijs'=>$artPrijs,
'afbeelding'=>$artAfbeelding, 'aantal'=>$artAantal));
} else {
$_SESSION['cart'][$index]['aantal']++;
}
}
} else {
$_SESSION['cart'] []=array('id'=>$artID,
'naam'=>$artNaam,'prijs'=>$artPrijs,
'afbeelding'=>$artAfbeelding,'aantal'=>$artAantal);
}
}
}
}
foreach ( $_SESSION['cart'] as $cart ) {
echo '<div id="artikelSpace">';
echo '<div id="artikel">';
echo '<div id="afbeelding">';
echo'<imgsrc="data:image/jpeg;base64,'
.base64_encode($cart['afbeelding']).'" />';
echo '</div>';
echo '<div id="naam">';
echo '<p>'.$cart['naam'].'</p>';
echo '</div>';
echo '<div id="aantal">';
echo '<form action="winkelwagen.php" method="POST">';
echo 'Aantal:';
echo '<input type="text" name="aantal" value="'
.$cart['aantal'].'" style="width: 50px; margin: 0px 20px 0px 20px" />';
echo '<input type="submit" name="wijzigAantal"
value="Wijzig" style="width: 100px;
border-radius: 5px; font-weight: bold;" />';
echo '</form>';
echo '</div>';
echo '<div id="prijs">';
echo '<p>Prijs: €'.($cart['prijs'] * $cart['aantal']).'</p>';
echo '</div>';
echo '<div id="verwijder">';
echo '<ul>';
echo '<li><a href="#">Verwijder</a></li>';
echo '</ul>';
echo '</div>';
echo '</div>';
echo '</div>';
}
?>
</div>
</div>
</body>
</html>
温克尔瓦根
温克尔瓦根
您必须在循环的每次迭代中初始化$index
变量,如下所示:
// your code
if ( isset($_SESSION['cart']) ) {
unserialize(serialize($_SESSION['cart']));
for ( $i = 0; $i < count($_SESSION['cart']); $i++ ) {
$index = -1; // initialize $index in each iteration
if ( $_SESSION['cart'][$i]['id'] == $_GET['itemID'] ) {
$index = $i;
}
if ( $index == -1 ) {
array_push($_SESSION['cart'], array('id'=>$artID, 'naam'=>$artNaam, 'prijs'=>$artPrijs, 'afbeelding'=>$artAfbeelding, 'aantal'=>$artAantal));
} else {
$_SESSION['cart'][$index]['aantal']++;
}
}
} else {
$_SESSION['cart'][]=array('id'=>$artID, 'naam'=>$artNaam,'prijs'=>$artPrijs, 'afbeelding'=>$artAfbeelding,'aantal'=>$artAantal);
}
// your code
//您的代码
如果(isset($\u会话['cart'])){
取消序列化(序列化($_会话['cart']);
对于($i=0;$i$artID',naam'=>$artNaam',prijs'=>$artPrijs',afbeelding'=>$artAfbeelding',aantal'=>$artAantal));
}否则{
$\会话['cart'][$index]['aantal']++;
}
}
}否则{
$\u SESSION['cart'][]=array('id'=>$artID,'naam'=>$artNaam,'prijs'=>$artPrijs,'afbeelding'=>$artAfbeelding,'aantal'=>$artAantal);
}
//你的代码
旁注:不要使用
mysql\ucode>数据库扩展,它们在PHP5.5.0中被弃用,在PHP7.0.0中被删除。改用mysqli
或PDO
扩展。这是。当mysql扩展被折旧时,您应该查看mysqli或PDO扩展。谢谢您的回复谢谢您的回复!不幸的是,这个问题仍然存在。。。我可以从mysql改为mysqli吗?或者我必须为此设置一些东西吗?@IvoryNL不,从mysql
切换到mysqli
不会对您的业务逻辑产生任何影响。谢谢您的回答。我将尝试使用mysqliinstead@IvoryNL很高兴我能帮忙。:)