Php 从项目中回显订单
我在购物车中有一些在购物车中展示的物品。例如:我有3个不同的项目与数量 我设法将它发送到购物车页面,并将订单写入订单表Php 从项目中回显订单,php,mysql,shopping-cart,Php,Mysql,Shopping Cart,我在购物车中有一些在购物车中展示的物品。例如:我有3个不同的项目与数量 我设法将它发送到购物车页面,并将订单写入订单表 <?php ... $sql = "SELECT id_item, item, price FROM id_item WHERE id_item IN ("; foreach ($_SESSION['cart'] as $id => $value) { $sql .=$id.","; } $sql = substr($sql, 0
<?php
...
$sql = "SELECT id_item, item, price FROM id_item WHERE id_item IN (";
foreach ($_SESSION['cart'] as $id => $value) {
$sql .=$id.",";
}
$sql = substr($sql, 0, -1).") ORDER BY item ASC";
$query =mysql_query($sql);
$total = 0;
while($row=mysql_fetch_array($query)) {
$subtotal = $_SESSION['cart'][$row['id_item']]['quantity']*$row['price'];
$total += $subtotal;
?>
<tr>
<td width="200px" style="padding-left:20px;"><?= $row['item'] ?></td>
<td style="padding-left:20px;"><input type="text" name="quantity[<?= $row['id_item']?>]" size="5" value="<?= $_SESSION['cart'][$row['id_item']]['quantity']?>"</td>
<td style="padding-left:20px;"><?= $row['price']?></td>
<td style="padding-left:20px;"><?= $_SESSION['cart'][$row['id_item']]['quantity']*$row['price']?> kn</td>
</tr>
...
所以现在我想对三个不同的项目做如下处理:
ORDERS
1
user1
2014-01-01
0
ORD.ITEMS
1
1
10
5
ORD.ITEMS
1
2
20
3
ORD.ITEMS
1
3
30
2
如何编写SQL查询,在完成订单写入表ORD.ITEMS三项之后?我设法解决了我的问题,很简单。这是我解决问题的一种方法:
$sqlMaxS = "SELECT MAX(id_ord_items) FROM ord.items";
$resultMaxS = queryDB($sqlMaxS);
$result = mysql_fetch_row($resultMaxS);
$id_ord_items = $result['0'];
$id_ord_items++;
$sql = "SELECT * FROM items WHERE id_item IN (";
foreach ($_SESSION['cart'] as $id => $value) {
$sql .=$id.",";
}
$sql = substr($sql, 0, -1).") ORDER BY name ASC";
$query =mysql_query($sql);
while($row=mysql_fetch_array($query)) {
$sql = "INSERT INTO ord.items (id_order, id_ord_items, item, quantity)
VALUES ('$id_order', '$id_ord_items', {$row['id_item']}, {$_SESSION['cart'][$row['id_item']]['quantity']})";
$stavka++;
queryDB($sql);
如上所述,我使用while循环 你会有一个确认页面来添加订单吗?是的,我会的。所有这些我都打算在确认页面上实现。所以开始创建它,如果您发现任何问题,我们将在这里帮助您解决任何问题。只是一个提示,您可以在购物车数组中循环并插入订单和产品详细信息。谢谢!我明白了。顺便说一句,恶意用户有机会对您的服务器进行大规模SQL注入攻击。由于这是一个电子商务系统,我强烈建议您查看您的安全性,并考虑使用编写的语句使用<代码> MySQL LI*<代码>或<代码> PDO< /代码>。code>mysql.*命令已弃用,不应使用。
$sqlMaxS = "SELECT MAX(id_ord_items) FROM ord.items";
$resultMaxS = queryDB($sqlMaxS);
$result = mysql_fetch_row($resultMaxS);
$id_ord_items = $result['0'];
$id_ord_items++;
$sql = "SELECT * FROM items WHERE id_item IN (";
foreach ($_SESSION['cart'] as $id => $value) {
$sql .=$id.",";
}
$sql = substr($sql, 0, -1).") ORDER BY name ASC";
$query =mysql_query($sql);
while($row=mysql_fetch_array($query)) {
$sql = "INSERT INTO ord.items (id_order, id_ord_items, item, quantity)
VALUES ('$id_order', '$id_ord_items', {$row['id_item']}, {$_SESSION['cart'][$row['id_item']]['quantity']})";
$stavka++;
queryDB($sql);