【发布时间】:2014-11-04 12:48:09
【问题描述】:
我正在尝试开发一个库存系统,用户可以在该系统中查看他们的库存并使用仅由用户输入的值更新数量,其余部分从数据库中保持不变。但它不起作用,请帮我找出我做错的地方。它将回显成功消息,但数据库未更新。
<form name="form" method="post">
<table width="70%" border="5" align="center"><tr>
<th scope="row">SKU</th>
<th scope="row">Item Description</th>
<th scope="row">Current Qunatity</th>
<th scope="row">Update Quantity</th>
<th scope="row">Unit Price</th>
</tr>
<tr>
<th scope="row">
<?php
include('connect.php');
$result = mysqli_query("SELECT * FROM products")
or die(mysqli_error());
while($row = mysqli_fetch_array( $result )) {
echo "<tr>";
echo '<td><a name="sku[]">'.$row['sku_id'].'</a></td>';
echo '<td>'.$row['description'].'</td>';
echo '<td>'.$row['quantity'].'</td>';
echo '<td><input name="qty[]" /></td>';
echo '<td>'.$row['unit_price'].'</td>';
echo "</tr>";
}
?>
</table>
<input style="float:right" name="update" type="submit" id="update" value="Update"/>
</form>
<?php
if(isset($_POST['update']))
{
$qty = $_POST['qty'];
$sku = $_POST['sku'];
foreach($qty as $key => $value)
{
if(empty($value))
{
continue;
}
else
{
$sql = "UPDATE products SET quantity ='".$value."' WHERE sku_id = '".$sku[$key]."'";
mysql_query($sql);
}
}
$retval = mysqli_query($sql);
if(! $retval)
{
die('Could not update data: '. mysql_error());
}
echo 'Update data successfully!';
}
?>
【问题讨论】:
-
这样的事情很容易通过简单的错误输出来避免
-
@Joseph 与您的问题无关,但您为什么不使用 PDO - 建议不要使用 sql 注入。 mysql_query 已弃用
-
感谢推荐!我会找出 PDO 究竟是如何工作的!