PHP变量在MySQL数据库中输入为0

时间:2014-04-20 12:22:29

标签: php mysql variables zero

我是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(&#8364;): </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>";
?>

1 个答案:

答案 0 :(得分:0)

此脚本中有两种形式:

  1. 一个带有选择框
  2. 另一个带有输入框
  3. 这些表格中的每一个都单独发布。

    让我们有一些状态转换表:

    1. 表单最初显示第一次,所有值都为空 或默认。
    2. 您选择一个项目名称并提交第一个表格。
    3. 选项列表已过帐,$_POST['select']具有该值 已正确填充第二种形式
    4. 脚本运行直到结束并立即插入空行 具有所选项目名称的数据库
    5. 您以第二种形式输入并提交
    6. 这有两个输入变量:已发布的成本和数量
    7. 由于选项列表是另一种形式,它会 没有发布,$select在该州是空的
    8. 更新语句将运行但没有结果,因为没有 db中的空item_name - 无用的更新。
    9. 简单的解决方案:只做一个表格并完成(除了完全缺失的错误处理......)

      第二个解决方案:如果仅设置了 $ _POST ['select'],则将$select的值放在隐藏字段中,并在回显第二个表单后退出脚本。