好的,我有一组 php 文件,用作基于 Web 的库存系统。搜索商品并从列表中选择一项后,用户将进入一个页面,其中显示先前选择的商品的当前数量。在同一页面上,JavaScript 用于添加或减去当前数量值。我希望能够获取“当前数量”文本框中的更新值,并在 MySQL 中更新它们。
请注意,显示的项目数量因搜索页面上选择的数量而异。
以下是更新页面,用户可以在其中添加或减去数量值:
<html>
<title>Update Selections</title>
<body>
<?php
include("menu.php");
include("sqlconnect.php");
?>
<script type="text/javascript">
/*<![CDATA[*/
function add(obj,ud){
while (obj.parentNode){
if (obj.nodeName.toUpperCase()=='TR'){
obj=obj.getElementsByTagName('INPUT')[0];
break;
}
obj=obj.parentNode;
}
if (obj.nodeName.toUpperCase()=='INPUT'){
obj.value=Math.max(obj.value*1+ud,0);
}
}
/*]]>*/
</script></head>
<p align="center"><b>Make Updates:</b>
<br />
<br />
The following items were selected for quantity update:
<br />
<br />
<table border="1">
<tr><th>Item:</th>
<th>QUANTITY</th>
<th>ADD/SUBTRACT</th></tr>
<style>
textarea {resize: none;}
</style>
<form action="updatequantityprocess.php" method="post">
<?php
//$row_id = $_POST['itemselect'];
foreach ($_POST['itemselect'] as $confirm)
{
$result = mysql_query("SELECT * FROM inventory WHERE id='$confirm'");
while ($row = mysql_fetch_array($result))
{
echo "<tr><td>" . $row['Item'] . "</td>";
echo "<td bgcolor='grey'><input type='text' id='value' name='itemupdate[]' disabled='disabled' style='text-align: center' value='" . $row['QuaninInventory'] . "'><input type='hidden' value='" . $row['id'] . "' name='itemid[]'></td>";
echo "<td><div align='center'><input type='button' value='+' onclick='add(this, 1)'><input type='button' value='-' onclick='add(this, -1)'></div></td></tr>";
}
}
echo "</table>";
?>
<br />
<br />
<input type="submit" value="Update">
<br />
<INPUT TYPE="BUTTON" VALUE="<-- Back to Results" ONCLICK="window.location.href='http://localhost/Inventory/quantitybybrandprocess.php'">
</p>
</form>
</body>
</html>
我不知道如何使用 itemupdate[]
和 item[]
数组构建下一个页面 quantityupdateprocess.php
更新 MySQL 数据库中的选定项目。
最佳答案
使用 foreach 循环遍历所有 itemid,并单独更新每个 itemid。
foreach($_POST["itemids"] as $itemid){
//Do mysql update based on other fields (make sure to escape itemid, and the other fields as well, or even better use prepared statements).
}
为了访问当前商品的数量,请执行以下操作。
foreach($_POST["itemids"] as $i=>$itemid){
//do mysql updates where $_POST["itemupdate"][$i] is the item update for the item id.
}
关于php - MySQL 更新 'n' 按行 [id] 包含新信息的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11220782/