我正在尝试将数据插入数据库。
没有错误,但数据库仍未更新。
在数据库中,product
表包含:
productid,categoryid,productname,productimage,stock,price
并且detailsales
表包含:
transactionid,productid和quantity
更新一个正在运行,但插入一个根本不起作用。
这是我的代码:
<form action="doShop.php" method="post">
<table border="1">
<tr>
<td>Product ID</td>
<td>Product Name</td>
<td>Product Image</td>
<td>Price</td>
<td>Product Stock</td>
<td> Quantity</td>
</tr>
<?php
$query = mysql_query("SELECT * FROM Product");
while($row = mysql_fetch_array($query)){
?>
<tr>
<td><input type="text" value="<?=$row['ProductID']?>" name="productid"></td>
<td><?=$row['ProductName']?></td>
<td><img src="image/<?=$row['ProductImage']?>"></td>
<td><?=$row['Price']?></td>
<td><input type="text" value="<?=$row['Stock']?>" name="stock"></td>
<td><input type="text" name="quantity"></td>
</tr>
<?php
}
print mysql_error();
?>
</table>
<table>
<tr><input type="submit" value="Submit"></tr>
</table>
</form>
这是doShop代码:
<?php
include("connect.php");
$id=$_REQUEST['productid'];
$quantity=$_REQUEST['quantity'];
$stock = $_REQUEST['stock'];
mysql_query("insert into DetailSales(ProductID, Quantity)values('".$id."','".$quantity."')");
mysql_query("update product set stock = $stock - $quantity where detailsales.productid = product.productid");
header("location:shopcart.php");
?>
任何人都可以帮助我吗?
答案 0 :(得分:3)
您试图在查询中执行计算,而是创建了一个名为$total
的单独变量来处理您的问题。
像这样:
$total = $stock - $quantity;
而不是:
SET stock = $stock - $quantity
因此,将doshop代码更改为:
<?php
include("connect.php");
$id = $_REQUEST['productid'];
$quantity = $_REQUEST['quantity'];
$stock = $_REQUEST['stock'];
$total = $stock - $quantity;
mysql_query("INSERT INTO DetailSales(ProductID, Quantity)
VALUES ('".$id."','".$quantity."')") or die(mysql_error());
mysql_query("UPDATE product SET stock = '$total'
WHERE detailsales.productid = product.productid")
or die(mysql_error());
header("Location: shopcart.php");
答案 1 :(得分:0)
mysql_query("update product set stock = $stock - $quantity where detailsales.productid = product.productid");
我认为这一行是错的,应该是
mysql_query("update product set stock = ".($stock - $quantity)." where detailsales.productid = product.productid");
答案 2 :(得分:0)
请尝试这种方式;
$sql = ("insert into DetailSales(ProductID, Quantity)values('".$id."','".$quantity."')");
$res = mysql_query($sql);
if($res) {
mysql_insert_id();
} else {
die(mysql_error());
}