所以这是我的问题。我可以在购物车中添加一件商品。但我希望能够添加更多项目。我正在使用表单和GET方法添加项目
require "connect.php";
$query = "SELECT `DVDID`, `NameOfTheDVD`, `Quantity`, `Price` FROM `DVD` ";
$stmt = $dbhandle->prepare($query);
$stmt->execute();
$num = $stmt->rowCount();
if($num>0){
while ($row = $stmt->fetch(PDO::FETCH_OBJ)){
if(!isset($_SESSION['cart'])){
echo "<table border='3' cellpadding='10' position='relative` bottom= '450px' color = 'blue';>";//start table
echo '<div class="DVD ID">';
echo '<tr><td>DVD Id : '.$row->DVDID. '<br></td>' ;
echo '<td>Name Of the DVD : '.$row->NameOfTheDVD.'<br></td>';
echo '<td>Quantity : '.$row->Quantity.'</td>';
echo '<td>Price: '.$row->Price.'</td></tr> ';
$mydvd = $row->DVDID;
$name = $row->NameOfTheDVD;
$Quantity = $row -> Quantity;
$Price = $row -> Price;
首先,我从数据库中检索产品,然后通过Form和GET方法将它们添加到购物车中
echo '<input type="hidden" name="id" value="'.$mydvd.'">';
echo '<input type="hidden" name="item" value="'.$name.'">';
echo '<input type="hidden" name="Quantity" value="'.$Quantity.'">';
echo '<input type="hidden" name="Price" value="'.$Price.'">';
echo '<input type="hidden" name="Cart" value="'.$cartItemCount.'">';
//echo '<input type="submit" value="Add To Basket">';
echo '<a href = "basket.php?id='.$mydvd.'&name='.$name.'&Quantity='.$Quantity.'&Cart='.$cartItemCount.'&Price='.$Price.'"> Add To Basket</a><br>';
这就是我打印结果的方式
$myid = $_GET['id'];
$DVDname = $_GET['name'];
$Qty = $_GET['Quantity'];
$price = $_GET['Price'];
echo '<div class="DVD ID">';
echo '<h1> Cart </h1>';
echo '<table border="1" cellspacing="1" position="relative" left="250">';
echo "<tr><th> DVD ID<td> " . $myid . "</td></th></tr>";
echo "<tr><th> DVD Name<td> " . $DVDname . "</td></th></tr>";
echo "<tr><th> Quantity<td> " . $Qty . "</td></th></tr>";
echo "<tr><th> Price<td> " . $price . "</td></th></tr>";
echo '</div>';
感谢您的帮助
答案 0 :(得分:0)
我不会为你写完整个代码,而是会给你一些建议,演讲等。
首先,您需要了解使用SESSION
,session_start()
和session_destroy()
变量在PHP中使用$_SESSION
的内容和方式。
现在,您的购物车应该存储在一个会话变量中,它应该是并且将是一系列产品。
为简单起见,我建议的结构是:
$_SESSION['cart'] = array(
12 => array('quantity'=>99),
15 => array('quantity'=>10)
);
在上面的代码中,12和15是产品ID作为$_SESSION['cart']
中的键。这样,如果我们需要更新一些信息,例如添加或减去数量,我们就更容易在数组中找到产品。
此外,上面的示例很简单,为了使其工作,如果要显示购物车,则需要将其放在循环上,然后在循环时从数据库中查询其他信息。您将使用ids(键)进行搜索查询。但是,您也可以在array
中将其他信息存储在购物车中添加商品时的数量,这样您就不需要查询数据库中的每个商品了。
要将商品添加到购物车,显然您需要执行$_GET
或$_POST
。我相信你已经知道该怎么做了。
现在,如果您想要多个相同的项目,那么我建议每个项目都有自己的表单,其中包含数量的文本字段。我不知道您的网站是什么样的,或者“客户”何时何地可以将商品添加到购物车中,因此算法,结构等可能会有所不同。
因此,如果有多个不同的项目,那么在将其发布到您的php脚本上进行处理之前,您需要首先验证有效值的javascript帮助。你可以在php级别做到这一点,但我建议你在javascript级别上做。在这里,我说你应该只有1个产品清单表格。我建议不要这样做。
在购物车中添加或更新产品的示例。我在这个例子中使用GET。
if(isset($_GET['product_id'],$_GET['product_quantity']))
{
$pid = $_GET['product_id'];
$pq = $_GET['product_quantity'];
$_SESSION['cart'][$pid]['qty'] = $pq;
// if you have more, you can just add something like
// $_SESSION['cart'][$pid]['name'] = "Apple";
}
从购物车中删除商品:
if(isset($_GET['product_id']))
{
$pid = $_GET['product_id'];
unset($_SESSION['cart'][$pid]);
}