Php Html表仅插入mysql数据库中的最后一行,而不是所有行
我正在实施服装购物网站。当我下单时,我遇到了一个问题:只有购物车HTML表中的最后一行项目被插入数据库,而不是所有行。我希望当我点击PlaceOrder按钮时,所有的行值都应该插入到数据库中。因此,客户应将购物车中的所有选定项目放置以供订购。 这是密码Php Html表仅插入mysql数据库中的最后一行,而不是所有行,php,html,Php,Html,我正在实施服装购物网站。当我下单时,我遇到了一个问题:只有购物车HTML表中的最后一行项目被插入数据库,而不是所有行。我希望当我点击PlaceOrder按钮时,所有的行值都应该插入到数据库中。因此,客户应将购物车中的所有选定项目放置以供订购。 这是密码 <table align="center" > <thead> <tr > <th>Product</th>
<table align="center" >
<thead>
<tr >
<th>Product</th>
<th>Price</th>
<th>QTY</th>
<th>SubTotal</th>
</tr>
</thead>
<?php
if (!empty($_SESSION["shopping_cart"]))
{
$total=0;
foreach ($_SESSION["shopping_cart"] as $keys => $values) {
?>
<tr>
<td>
<p>Product Code:<?php echo $values["item_id"]; ?> <br/>
<?php echo $values["item_gender"]; ?><br/>
<?php echo $values["item_description"]; ?> </p></td>
<td>PKR
<input type="number" name="price1" id="price1" value="<?php echo $values["item_price"];?>" readonly ></td>
<td><input type="number" name="qty[<?php echo $values["item_id"]; ?>]" id="qty" value="<?php echo $values["item_quantity"];?>"></td>
<input type="hidden" name="qty" value="<?php echo $values["item_quantity"];?>" >
<td >PKR<input type="number" name="total" id="total" value="<?php echo ($values["item_quantity"] * $values["item_price"]) ?>"readonly></td>
</tr>
<?php
$total=$total+($values['item_quantity']*$values["item_price"]);
/* $total=$total+$values["item_price"]; */
}
} ?>
</table> <br/><br/>
<button type="submit" name="submit" class="btn btn-primary btn-lg">Place Order</button>
here is php code,
if (isset($_POST['submit']))
{
$product_code = $_POST['ID'];
$price = $_POST['grandtotal'];
$quantity = $_POST['qty'];
$description = $_POST['description'];
$email=$_SESSION["email"];
$con=mysql_connect("localhost", "root", "");
mysql_select_db("login",$con);
$qry="INSERT INTO order ( order_description , product_code, order_quantity, order_price, customer_name, email, customer_id) VALUES ('$description', '$product_code', '$quantity', '$price', (SELECT name from users where email='$email'), '$email', (SELECT user_id from users where email='$email') ) ";
$result=mysql_query($qry,$con);
if($result)
{
echo '<script>alert("Your order has been placed")</script>';
echo '<script>window.location="portfolionew.php"</script>';
} else {
die("Error While Adding Stock ! Please Try Again .");
}
}
产品
价格
数量
小计
产品代码:
PKR
产品
价格
数量
小计
产品代码:
PKR
请删除javascript标记,只是让人感到困惑——代码中没有js,您面临的问题也与js有关。Thanks@N.伊万诺夫:谢谢,我删除了它——只插入最后一行是你最小的问题;您正在使用一个过时的数据库连接器,其代码极易受到SQL注入攻击。。。在嵌套查询中,内部联接
会更好吗?我建议找一个最新的教程,然后重新开始。不要使用不推荐的和不安全的mysql*函数。自PHP5.5(2013年)起,它们就被弃用,并在PHP7(2015年)中被完全删除。改用MySQLi或PDO。2.您完全可以使用,并且应该真正使用,而不是串联查询,如果您使用上述MySQLi或PDO,可以使用这些查询。表单也没有意义-您在循环中回显输入,但仍有
<table align="center">
<thead>
<tr >
<th>Product</th>
<th>Price</th>
<th>QTY</th>
<th>SubTotal</th>
</tr>
</thead>
<?php
if (!empty($_SESSION["shopping_cart"]))
{
$total=0;
$i = 1;
foreach ($_SESSION["shopping_cart"] as $keys => $values) {
?>
<tr>
<td style=" text-align: left;" >
<p style="margin-top: -120px; margin-left: 150px;">Product Code:<?php echo $values["item_id"]; ?> <br/>
<?php echo $values["item_gender"]; ?><br/>
<?php echo $values["item_description"]; ?> </p></td>
<td style="text-align: left; width: 80px;">PKR<br/>
<input style="width: 70px;" type="number" name="price<?= $i; ?>" id="price<?= $i; ?>" value="<?php echo $values["item_price"];?>" readonly ></td>
<td><input type="number" name="qty_<?= $i; ?>" id="qty_<?= $i; ?>" value="<?php echo $values["item_quantity"];?>"></td>
<td style="text-align: left; width: 80px;"> <b>PKR</b>
<br/> <input style="width: 70px; " type="number" name="total" id="total" value="<?php echo ($values["item_quantity"] * $values["item_price"]) ?>"readonly></td>
</tr>
<?php
$total=$total+($values['item_quantity']*$values["item_price"]);
$i++;
/* $total=$total+$values["item_price"]; */
}
} ?>
<input hidden="iTotalProducts" value="<?php echo $i; ?>" name="product_count">
</table> <br/><br/>
<button type="submit" name="submit" class="btn btn-primary btn-lg">Place Order</button>
//here is php code,
if (isset($_POST['submit']))
{
$product_code = $_POST['ID'];
$price = $_POST['grandtotal'];
$quantity = $_POST['qty'];
$description = $_POST['description'];
$email=$_SESSION["email"];
$con=mysql_connect("localhost", "root", "");
mysql_select_db("login",$con);
$cnt = $_POST["iTotalProducts"];
for($i = 1; $i <= $cnt; $i++) {
// here you can write your insert code
}
if($result)
{
echo '<script>alert("Your order has been placed")</script>';
echo '<script>window.location="portfolionew.php"</script>';
} else {
die("Error While Adding Stock ! Please Try Again .");
}
} `enter code here`