PHP 复选框会更新数据库,但下拉菜单不会更新

标签 php mysql

我在复选框上有以下脚本,可以相应地工作并更新我的数据库。

 while($row = mysql_fetch_array($result)){

$host = $row['host'];
$environment = $row['environment'];

echo "<tr><td>" . $host . "</td><td>" . $environment . "</td><td><input type='checkbox' name='id[]' value='" . $host . "'/></td></tr>";
}

 echo "</tbody></table><input type='submit' value='submit'></form>";

if(gettype($_POST['id'])=="array"){
foreach($_POST['id'] as $val){
 $id_c = $val;
 $query1 = "UPDATE hosts SET reboot = 'Yes' where host='".$id_c."'";
 $result= mysql_query($query1);
 if($result === false) {
    die(mysql_error());
 }
 echo "Reboot updated for Host " .$id_c. " is updated. <br>

但是当我用复选框替换它时,它不起作用。复选框脚本如下。

while($row = mysql_fetch_array($result)){

$host = $row['host'];
$environment = $row['environment'];

echo "<tr><td>" . $host . "</td>
      <td><select name='id[".$host."]'><option value='Null'>Select any</option>
                              <option value='DEV/QA/TEST'>DEV/QA/TEST</option>
                              <option value='PROD/STAGE'>PROD/STAGE</option>
                              </select></td>
                              <td>" . $environment . "</td></tr>"; }


echo "</tbody></table><input type='submit' value='submit'></form>";

if (gettype($_POST['id'])=="array") {

    foreach($_POST['id'] as $host => $val){

            $id_c = $val;
if ($val != 'Null') {
            $query1 = "UPDATE hosts SET environment = '$val' where host='$host'";

            $result1 = mysql_query($query1);

            if($result1 === false) {

            die(mysql_error());
         }

     echo "Environment for Host " .$host. " is updated. <br>";

}}}

工作更新的脚本现在在这里。

最佳答案

在下面的脚本中,您仍然使用 $_POST['id'] ,但您选择的字段名称为 selectid字段是隐藏字段。因此,永远不会使用选择框中的值。

杀死<攻击> <input type='hidden' name='id[]' value='" . $host . "'> <select name='select'>将是<select name='id[]'>

并且,请更正这些引号并尝试关注 SQL 注入(inject),因为您的脚本很容易受到攻击。

关于PHP 复选框会更新数据库,但下拉菜单不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098609/

相关文章:

asp.net - 如何在asp.net图像控件中显示mysql blob图像?

mysql - 在 UPDATE BETWEEN 查询中哪些行将被锁定?

java - 使用线程发出数据库请求

php - 将多个复选框值添加到数据库

Mysql 通过 PHP 给出 "Can' t create/write to file"错误

php - java.io.FileNotFoundException,但 php 文件存在

javascript - 在javascript中选择下拉列表时如何显示加载图像

php - Laravel - 使用查询生成器命名子查询

php - 如何在 Twig 中对 HTML 转义文本进行 URL 编码?

php - 在 PHP 中加密,在 Python 中解密