我是php和mysql的新手。我在这部分代码中尝试做的是根据2个文本框的输入更新数据库中的2列信息。每当我尝试更新数据库中的值时,它们都会更新为0.我在声明$ variables后放置了echo语句,两个变量的值与我在框中输入的值相同。但是当我运行sql_query时,数据库中的新值是0而不是2 $变量的值。任何帮助将非常感激!提前谢谢!
<?php
$result = mysql_query("SELECT * from place_order ORDER BY item_name;");
echo "<form action='' method='POST'>Select an item:<select name='selection'><option>Select...</option>";
while ($row = mysql_fetch_assoc($result))
{
$item_name = $row["item_name"];
echo "<option>$item_name</option>";
}
echo "</select>
<input type='submit' value='Select Item' style='float:right;'/>";
$selection = $_POST['selection'];
echo "<br><br>Type the updated information into the text fields<br><br>";
echo "
<table width='300'>
<tr>
<td align='left'>Item Cost(€): </td>
<td align='left'><input type='text' name='cost'></td>
</tr>
<tr>
<td align='left'>Item Quantity: </td>
<td align='left'><input type='text' name='quantity'></td>
</tr>
<tr>
<td align='left'></td>
<td align='left'><input type='submit' name='button' value='Submit'></td>
</tr>
</table>
";
$cost = $_POST['cost'];
$quantity = $_POST['quantity'];
$selection = $_POST['selection'];
$sql = "UPDATE place_order SET item_cost='$cost', quantity='$quantity' WHERE item_name='$selection' ORDER BY item_name;;";
$query_update = mysql_query($sql);
if($query_update)
{
echo "Table updated! Click View Stock in the menu to view the updated table";
}
echo"</form>";
?>
答案 0 :(得分:0)
此脚本中有两种形式:
这些表格中的每一个都单独发布。
让我们有一些状态转换表:
$_POST['select']
具有该值
已正确填充第二种形式$select
在该州是空的简单的解决方案:只做一个表格并完成(除了完全缺失的错误处理......)
第二个解决方案:如果仅设置了 $ _POST ['select'],则将$select
的值放在隐藏字段中,并在回显第二个表单后退出脚本。