Php 如何在数据库中注册会话中保存的数据?
我是一个对Php感兴趣的新生。 我还试图做一个项目,我们可以在线订购,以提高我的才能。有一点我有一个问题,我将分享以下代码。我可以使用会话将项目添加到购物车,并将其存储在会话目录中。之后,我需要在按下“签出”按钮后将添加到此购物卡的所有产品保存到数据库中。但我不知道如何将会话中保存的大量数据记录到数据库中。在下面的代码片段中,我可以用print\r显示会话中保存的所有数据(即所有添加的产品)。但是如何在数据库中注册它们呢。 如果你帮助我,我会很高兴的。祝你一天愉快Php 如何在数据库中注册会话中保存的数据?,php,mysql,arrays,session,sql-insert,Php,Mysql,Arrays,Session,Sql Insert,我是一个对Php感兴趣的新生。 我还试图做一个项目,我们可以在线订购,以提高我的才能。有一点我有一个问题,我将分享以下代码。我可以使用会话将项目添加到购物车,并将其存储在会话目录中。之后,我需要在按下“签出”按钮后将添加到此购物卡的所有产品保存到数据库中。但我不知道如何将会话中保存的大量数据记录到数据库中。在下面的代码片段中,我可以用print\r显示会话中保存的所有数据(即所有添加的产品)。但是如何在数据库中注册它们呢。 如果你帮助我,我会很高兴的。祝你一天愉快 <?php ses
<?php
session_start();
require_once 'dbconnect.php';
?>
<?php require('header.php'); ?>
<?php require('menu.php'); ?>
<h1 style="text-align: center; color: blue;">Sepetim</h1>
<div>
<table style="width: 100%">
<tr>
<th class="cart">Ürün İsmi</th>
<th class="cart">Miktar</th>
<th class="cart">Fiyat Detayları</th>
<th class="cart">Sipariş Toplamı</th>
<th class="cart">Sil</th>
</tr>
<?php
$total = 0;
//If have something in the cart. Display it.
if(!empty($_SESSION["cart"]))
{
foreach($_SESSION["cart"] as $keys => $values)
{
?>
<tr class="cart">
<td style="background-color: #d3dcf2"><?php echo $values["item_name"]; ?></td>
<td class="cart"><?php echo $values["item_quantity"] ?></td>
<td class="cart"><?php echo $values["product_price"]; ?> ₺</td>
<td class="cart"><?php echo number_format($values["item_quantity"] * $values["product_price"], 2); ?> ₺</td>
<td class="cart"><a id="delete" href="shop.php?action=delete&id=<?php echo $values["product_id"]; ?>"><span> X</span></a></td>
</tr>
<?php
$total = $total + ($values["item_quantity"] * $values["product_price"]);
}
}
?>
</table>
</div>
<center>
<div>
<?php
echo "<br>";
//products with basket added.
echo "<b>Added products </b><br>";
print_r(array_values($_SESSION["cart"]));
echo "<br><br> <b>Array keys</b><br>";
$column=implode("," , array_keys($_SESSION["cart"][0]));
echo "$column";
echo "<br>";
echo "<br><br> <b>Array values</b><br>";
$values=implode(",",array_values($_SESSION["cart"][0]));
echo "$values";
echo "<br><br>";
echo "<b>Count in Array</b><br>";
$count=count($_SESSION["cart"]);
echo $count;
echo "<br><br>";
//Insert Database
if(!empty($_SESSION["cart"]))
{
foreach($_SESSION["cart"] as $keys => $values){
$product_id=$values["product_id"];
$item_name=$values["item_name"];
$quantity=$values["item_quantity"];
$product_price=$values["product_price"];
$pro_sum=$values["item_quantity"] * $values["product_price"];
$sql = "INSERT INTO order (product_id,item_name,quantity,product_price,pro_sum,total)
VALUES ($product_id,'$item_name',$quantity,$product_price,$pro_sum,$total)";
if( $DBcon -> query($sql) === TRUE){
echo "New record created succesfully.";
}else{
echo "Error : " . $sql . "<br>" . $DBcon->error;
}
}
}
echo "<br><br>";
echo "<br><br>";
?>
<p><u>Ürün toplamı: </u><?php echo number_format($total,2); ?> ₺</p>
<p><u>Vergiler ve Ücretler : </u><?php echo number_format($total*0.18); ?> ₺</p>
<h3>Toplam: <?php echo number_format($total*1.18); ?> ₺</h3>
<h4><a id="checkout" href="checkout.php"> Siparişi Tamamla</a></h4>
</div>
</center>
<?php require('footer.php'); ?>
塞皮蒂姆
Ürünİsmi
米克塔尔
菲亚特·德泰拉尔
西帕里·托普兰
Sil
₺
₺
谢谢你的帮助。我这样解决了我的问题=>>$sql=“INSERT INTO
order
(order\u id
,product\u id
,item\u name
,quantity
,pro\u-sum
,total
)值(空,“$product\u-id.”,“$item\u-name.”,“$quantity.”,“$pro.$total.“)”。祝你过得愉快。不幸的是,当我尝试你的时候,我犯了这样一个错误。=>>“分析错误:语法错误,意外的“$Product_id.”(T_常量_ENCAPSED_字符串)C:\xamp\htdocs\Smart Cafe\Smart Cafe codes\yourchart.php,在第83行=>>>第83行:$sql:$INSERT=“插入订单(产品id、项目名称、数量、产品价格、专业金额、总额)值(“..$Product_id.”、“..$Product_name.”、“..$QUOTE.””“.$product_price.”、“.$PROU sum.”、“.$total.””;先是单引号,然后是双引号$productid=mysql\u real\u escape\u string($values['product\u id']);。并像这样将每个变量括起来(混合双引号和单引号)。我希望我能帮助你很多“$productid.”@Kuldeep No.使用占位符值。不要那样做。特别是不要使用已删除的mysql\u查询
函数系列。警告:尽可能使用准备好的语句,以避免在查询和创建中插入任意数据。在任何用户提供的数据都指定有?
或:name
指示符的情况下,这些操作都非常简单,以后将使用绑定参数或执行
来填充指示符,具体取决于您使用的是哪一个指示符。请尝试摆脱用不必要的东西将代码弄乱的习惯,例如==true
。许多函数被设计为返回逻辑上为真或假的值,因此这是多余的。