簡體   English   中英

PHP 變量在 MySQL 數據庫中輸入為 0

[英]PHP variables entered as 0 in MySQL database

我對 php 和 mysql 比較陌生。 我在這部分代碼中要做的是根據 2 個文本框的輸入更新數據庫中的 2 列信息。 每當我嘗試更新數據庫中的值時,它們都會更新為 0。我在聲明 $ 變量之后放置了 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. 一個帶選擇框的
  2. 另一個帶有輸入框的

這些表格中的每一個都單獨發布。

讓我們有某種狀態轉換表:

  1. 表單最初是第一次顯示,所有值都為空或默認值。
  2. 您選擇一個項目名稱並提交第一個表單。
  3. 選項列表被發布並且$_POST['select']有一個值,然后在第二種形式中正確填充
  4. 該腳本一直運行到最后,並立即使用所選項目名稱將空行插入到您的數據庫中
  5. 您在第二個表單中輸入並提交
  6. 這有兩個輸入變量:發布的成本和數量
  7. 由於選項列表是另一種形式,它不會被發布並且$select在該狀態下為空
  8. 更新語句將運行但沒有結果,因為數據庫中沒有空的 item_name - 無用的更新。

簡單的解決方案:只制作一種形式,你就完成了(除了完全丟失的錯誤處理......)

第二種解決方案:如果只設置了$_POST['select'] ,則將$select的值放在一個隱藏字段中,並在回顯第二個表單后退出腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM