我需要您的帮助,以便在我的脚本中解决此问题 根据产品表更新产品数量 从第一页通过帖子获取信息。 一切似乎都不错,但数量没有在表中更新。 该表已有一定数量的此产品。
第1页:
$selectP="select prodid, prodname, prodtype from products where prodtype = 'BP'";
$result=mysql_query($selectP) or die (mysql_error());
echo "<form method=POST action=quantupdate.php>";
echo "<center><table border=1 cellpadding=5>";
echo "<tr><td>Select a Product to Update Quantity in Stock </td>";
echo "<td>";
echo "<select size=\"1\" name=\"product_selection\" id=\"product_selection\">";
echo "<option value=\"0\">- Product -</options>";
while($row = mysql_fetch_array($result)) {
echo "<option value='".$row['prodid']."'>".$row['prodname']."</option>";
}
echo "</select>";
echo "<tr><td>Select Quantity </td>";
echo "<td>";
echo "<select size=\"1\" name=\"pq\" id=\"pq\">";
echo "<option value=\"0\">Select Qty</options>";
echo "<option value=\"5\">5</options>";
echo "<option value=\"10\">10</options>";
echo "<option value=\"20\">20</options>";
echo "<option value=\"30\">30</options>";
echo "</select>";
echo "<tr><td><input type=submit name=submit id=submit value='Update Now'></td>";
echo "<td><input type=reset value='Clear Form'></td></tr>";
echo "</table></center>";
echo "</form>" ;
第2页:
$bprod=$_POST['product_selection'];
$quantity=$_POST['pq'];
if(isset($_REQUEST['product_selection'])) {
$bprod=$_POST['product_selection'];
} else {
echo "Not Working???";//do something about it
}
$updatequantity="UPDATE products
SET prodquantity = ".$quantity." WHERE prodname = ".$bprod;
$exeupdatequantity=mysql_query($updatequantity);
一切似乎都没问题,没有错误消息,但表格没有使用新数量进行更新。
请帮忙。
答案 0 :(得分:0)
修正您的更新查询:
$updatequantity="UPDATE products
SET prodquantity = '".$quantity."' WHERE prodname = '".$bprod."';";
您需要在MySQL中使用字符串中的引号,否则它们将被视为列名。
请记住,使用$ _POST / $ _REQUEST / $ _GET中未转义的值可能非常不安全。
使用例如mysql_escape_string来转义您的值:
$quantity = mysql_escape_string($qunatity);
$bprod = mysql_escape_string($bprod);
答案 1 :(得分:0)
您的更新查询存在问题。您尝试按prodname
更新记录,但是您将prodid
传递给它,因为$_POST['product_selection']
变量包含选项的值,在您的情况下为prodid
。
另外,
echo "<option value=\"0\">- Product -</options>";
应该是
echo "<option value=\"0\">- Product -</option>";
此外,您应该使用Tomek所说的内容,并将您的值传递给撇号查询。
最终,您的查询应该是:
$updatequantity = "UPDATE products SET prodquantity = '".$quantity."' WHERE prodid = '".$bprod."';";