使用PHP从下拉列表中获取值

时间:2015-05-14 20:28:40

标签: php sql

我有一个表格供用户输入值和更新记录。

下拉菜单如下所示:

    <select name="dateID" required>
        <option value="" disabled>Please select...</option>
        <option value="2">1920's</option>
        <option value="3">1930's</option>
        <option value="4">1940's</option>
        <option value="5">1950's</option>
        <option value="6">1960's</option>
        <option value="7">1970's</option>
        <option value="8">1980's</option>
        <option value="9">1990's</option>
    </select>

然后我通过使用这个来获得所选择的下拉值:

$decade = $_GET['dateID'];

这是导致我出现问题的部分我认为..当我在PHP MyAdmin中尝试它时,我的SQL状态员工作,但它不能在网站上工作。

这是我的SQL语句:

   $sql = mysqli_query($con, "UPDATE details INNER JOIN date ON date.dateID = details.dateID SET details.year = '$year', details.description = '$description', details.dateID = '$decade' WHERE id='$recordID'") or die('Query error. try again: '.mysqli_error());

这是加入两个表,一个表中有详细信息,另一个表根据该十年有十年和日期ID。

我正在尝试将下拉列表的值分配给日期表中的dateID,这意味着我可以指定分配了值的十年。

为什么SQL不起作用?

如果我用这个替换SQL它可以工作:

"UPDATE details SET year = '$year', description = '$description' WHERE id='$recordID'"

1 个答案:

答案 0 :(得分:0)

以下是一些建议:

  1. 将日期替换为“日期”。由于日期也是MySql中的数据类型。
  2. WHERE id='$recordID'撤回<table alias>.id。由于id可能存在于两个表中,并且您正在使用JOIN。
  3. 使用正确的转义序列正确获取变量的值,例如而不是"'$varname'"使用"'".$varname."'""'{$varname}'"
  4. 希望这有助于解决问题。