php - 将 session 数据写入数据库

标签 php mysql session

我正在创建一个迷你购物车,我想知道是否有办法从 session 中获取数据并将其写入数据库。 用户选择的部件应该添加到他们的购物车中。他们完成后,我如何获取存储到 session 中的数据,并将其写入数据库,以便他们再次登录时他们的购物车仍然存在?

<?php
if (isset($_GET['add'])) {
$quantity = mysql_query('SELECT partID, quantity, catergory FROM computerparts WHERE partID=' . mysql_real_escape_string((int) $_GET['add']));
while ($quantity_row = mysql_fetch_array($quantity)) {
    if ($quantity_row['quantity'] != $_SESSION['index_' . $_GET['add']]) {
        $_SESSION['index_' . $_GET['add']]+='1';
    }
}
header('Location: ' . $page);
}

 if (isset($_GET['delete'])) {
$_SESSION['index_' . (int) $_GET['delete']] = '0';
header('Location: ' . $page);
}

function cart() {
$total = "";
$sub = "";
foreach ($_SESSION as $name => $value) {
    if ($value > 0) {
        if (substr($name, 0, 6) == 'index_') {
            $id = substr($name, 6, (strlen($name) - 6));
            $get = mysql_query('SELECT partID, partName, price FROM computerparts WHERE partID=' . (int) $id);
            while ($get_row = mysql_fetch_array($get)) {
                $sub = $get_row['price'] * $value;
                echo $get_row['partName'] . 'x' . $value . '@ &pound;' . $get_row['price'] . '=' . $sub . '<a href="index.php?delete=' . $id . '">Delete</a> <br />';
            }
        }
        $total += $sub;
    }
}
if ($total == 0) {
    echo 'Your cart is empty';
} else {
    echo 'Total: &pound' . $total;
}
}
?>

为了让事情变得更简单,我从这个网站上删除了一些功能。将不会购买任何元素,所有发生的事情是用户选择他想要的元素并保存该信息,以便在他希望您可以将其引用规范的任何时候访问。 (规范表)他选择的项目将被写入该表。使用当前登录的用户 ID。

最佳答案

法达米

您正在考虑将 session 数据存储在数据库中,因为如果用户将商品添加到它的购物车中,然后他在没有从您的购物车购买商品的情况下注销。

然后下次他来时我们必须向他展示该商品(您已将该商品添加到购物车但未购买...)

我认为这是你的逻辑......为此我有一个答案..

您可以将该特定购买项目存储在您的 purchase_item_by_user 表中,并带有“标记类型”Pending“。

所以每次你都必须检查列表中是否有待处理列表中的项目......(你也可以检查特定的日期或时间..)

在那之后,当用户购买该项目时,您可以将其标志更改为“已购买”,或者如果用户取消该项目,则您可以将标志设置为“已取消”..

这会帮助你... 谢谢, 塔伦马尔帕尼...

关于php - 将 session 数据写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394140/

相关文章:

php - 是否可以将 PHP 的 filter_input() 过滤器标志与 AND/OR 结合使用?

PHP:注销问题?

java - hibernate 中的问题 : Session is closed

php - MYSQL EVENT 还是其他?试图追踪 "clicks for links"

authentication - 授权服务器上的 session 起什么作用?

用于计算访问次数和重定向的 PHP Session if (session ['visits' ]=1)

php - 通知: Array to string conversion when with two arrays

php - Laravel 4.2服务MP3-不可上链

mysql - 我无法连接到远程mysql

为应用程序使用 SSL 时 session 超时