繁体   English   中英

尝试使用会话创建一个简单的PHP购物车

[英]Trying to create a simple shopping cart in PHP with sessions

我有一个任务,我们应该创建一个电子商务网站,该网站从数据库中提取产品,列出产品,并允许您将其添加到购物车中,尽管只需要一个数量的项目,但它必须有其他数量功能也可以,我想自己可以解决。

我现在正在尝试的工作实际上是在用户单击为从数据库中提取的每个项目创建的“立即购买”按钮时,将项目添加到我的购物车中,但是我流血的迷失了。 我正在尝试为购物车使用会话,因此在关闭浏览器时所有内容都会被擦除。

这是列出可用项目的页面的内容:

<?php
    $id = $_GET['id'];
    $sql = "SELECT * FROM products WHERE id=$id";
    $result = mysqli_query($connection, $sql);

    echo '<div id="description">';
    if(mysqli_num_rows($result)>0){
        while($row = mysqli_fetch_array($result)){
            echo '<h2>'.$row['Name'].'</h2>';
            echo '<p>'.$row['Description'].'</p>';
            echo '<a href="cart.php" id="'.$row['id'].'" class="buyNow">Buy Now - $'.$row['Price'].'.00</a>';
        }
    }else{
        echo "There is something wrong.";
    }
    echo '</div>';
?>

这是我要买的东西:

<?php 

require('connection.php'); 
session_start();

$cart_content = array(); 

?>

我还没有过去为购物车项目创建数组的骨骼。 我不知道我上午该做什么,但是我似乎无法弄清楚如何使用创建的按钮添加项目。 当我考虑这样做时,似乎应该很容易,但是无论我看的是什么教程,我都无法弄清楚。 目前,这是我唯一需要帮助的问题,因为我很确定自己可以自己解决其余问题。

首先,当您使用锚标记启动CART处理时,需要将id添加到查询字符串中

<?php
    session_start();
    // show all products in this script
    $sql = "SELECT * FROM products";
    $result = mysqli_query($connection, $sql);

    echo '<div id="description">';
    if(mysqli_num_rows($result)>0){
        while($row = mysqli_fetch_array($result)){
            // stop it showing a product if it has already been selected by user
            if ( ! in_array($row['id'], $_SESSION['cart'] ) {
                echo '<h2>'.$row['Name'].'</h2>';
                echo '<p>'.$row['Description'].'</p>';
                echo '<a href="cart.php?id=' . $row['id'] . '" class="buyNow">Buy Now - $'.$row['Price'].'.00</a>';
            }
        }
    }else{
        echo "There is something wrong.";
    }
    echo '</div>';
?>

现在,当您在购物车处理脚本中查找$_GET['id'] ,它应该存在于$_GET['id'] 您需要做的就是将它添加到$_SESSION数组中的某个内容中,以便以后查看。 在$ _SESSION中为该数组取一个明智的名称很有用。

<?php 
session_start();
require('connection.php'); 

// add this id to the cart array in the session
$_SESSION['cart'][] = $_GET['id']; 
// re-run the first script
header('Location: xxxx.php');   // sorry dont know what the fist script is called

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM