我是PHP / MySQL的完整新手,但已决定制作某种界面来处理我店铺的库存。我已经学会了负荷,但我现在陷入绝望之中。
此表单显示一组特定类型的库存和数量:
<form method="post" action="submit.php">
<?php
while ($row = mysql_fetch_assoc($rs)) {
echo"<input type=\"hidden\" name=\"ovid[]\" value=" . $row['option_value_id'] . " />";
echo $row['name'];
echo"<input type=\"text\" name=\"quant[]\" value=" . $row['quantity'] . " />";
echo"<input type=\"submit\" /><br />";
} ?>
</form>
这是submit.php:
$_POST['ovida'] = implode(",",$_POST['ovid']);
$_POST['quanta'] = implode(",",$_POST['quant']);
print $_POST["ovida"];
print $_POST["quanta"];
$ovidyay = $_POST["ovida"];
$quantyay = $_POST["quanta"];
$query = "UPDATE product_option_value SET quantity ='$quantyay' WHERE option_value_id = '$ovidyay'";
$rs = mysql_query( $query )
or die( mysql_error() );
当我按下提交时(没有很多)没有错误,但我可以更新的唯一条目是列表中的第一个条目。我们将非常感激地接受任何帮助。
答案 0 :(得分:1)
您可以分别迭代和更新每个项目:
for ($i = 0; $i < COUNT($_POST['ovid']); $i++)
{
$ovidyay = $_POST['ovid'][$i];
$quantyay = $_POST["quanta"][$i];
$query = "UPDATE product_option_value SET quantity ='$quantyay' WHERE option_value_id = '$ovidyay'";
$rs = mysql_query($query);
}
此外,代码容易受到SQL注入攻击,并且您正在使用已弃用的MySQL php函数。如果您确实希望更好地使代码更容易受到攻击,请查看以下链接:
Why shouldn't I use mysql_* functions in PHP?
答案 1 :(得分:0)
首先不要使用 mysql _ * 函数尝试使用PDO或MySQLi并阅读准备好的语句。
如果你仍然想使用 mysql_ 函数,至少使用 mysql_real_escape_string 来逃避它们,但我不建议使用 mysql _ 函数,因为它们已被弃用。
以下是您可以做的事情: