2015-05-14 107 views
0

我有一个用于输入值和更新记录的表单。使用PHP获取下拉列表中的值使用PHP

下拉菜单如下:

<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'" 
+2

这没有任何意义。下拉列表与您的问题中的查询无关,与您询问的方式无关。 –

+5

你需要双引号乌尔查询来获取变量 – Bsienn

+0

的价值我已经这样做了,它仍然无法正常工作@Bsienn – Jordan

回答

0

下面是一些建议:

  1. 更换日期`date`。由于日期也是MySql中的数据类型。
  2. Relace WHERE id='$recordID'<table alias>.id。由于id可能出现在两个表中,并且您正在使用JOIN。
  3. 使用适当的转义序列正确地获得变量值。而不是"'$varname'"使用"'".$varname."'""'{$varname}'"

希望这将有助于解决这一问题。

+0

感谢您的反馈,但这些似乎都不起作用。我不明白为什么它不工作@Imran – Jordan

+0

该网址正在接收新的值,但它没有更新我的数据库。 – Jordan

+0

请回显'$ sql'变量。然后复制查询并在SQL选项卡中使用phpMyAdmin运行。或者在MySql控制台上运行它。 –

相关问题