我目前正在使用php Shopping cart。
我想将记录从一页插入到另一页。
例如,在我的产品页面上点击“购买”按钮后,
我购买的产品将列在我的购物车中(已完成)。
当我选择“结帐”时,它将在购物车中插入整个产品列表。
但是,我不能这样做。
当我选择“签出”时,它只能插入一个产品/记录,而不是整个产品/记录列表。
我可以将整个记录列表插入数据库吗?
以下是我的插入代码,我没有使用SESSION进行存储;而且,我了解SQL注入,但是我想先做基本的事情,因此不会涉及SQL注入。
有人可以帮我吗?
您的帮助将不胜感激!(:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "checkout_form")) {
$insertSQL = sprintf("INSERT INTO transaction (username, items, packaging, qty, price, imagename, `date`) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['username'], "text"),
GetSQLValueString($_POST['items'], "text"),
GetSQLValueString($_POST['package'], "text"),
GetSQLValueString($_POST['qty'], "int"),
GetSQLValueString($_POST['price'], "double"),
GetSQLValueString($_POST['imagename'], "text"),
GetSQLValueString($_POST['date'], "date"));
mysql_select_db($database_MyDatabase, $MyDatabase);
$Result1 = mysql_query($insertSQL, $MyDatabase) or die(mysql_error());
$insertGoTo = "transaction.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
最佳答案
因此,您希望在结帐流程结束时将购物车中的所有产品存储到数据库中,但不将会话用作临时持久性存储。您必须将购物车存放在某个地方(“ Cookie /会话”),以便在结帐流程结束时将整个购物车都收起来,因此您可以执行以下操作:
(请注意,这是伪代码,与良好的oop风格相去甚远,只是为了使您理解)
// Use-Case: Customer adds a product into his cart
$cart = $_SESSION['cart'];
$cart['positions'][] = array('item' => $_POST['item'], /* all your position information here */
// Use-Case: Customer wants to end the checkout process
foreach ($card['positions'] as $position) {
// Your datbase insert for a position here
}