首页 > 解决方案 > 在数据库的下拉列表中显示值并将所选值存储回数据库中的不同表中

问题描述

我正在做一个项目,我想从数据库中显示一个下拉列表,我可以这样做,但是在做出选择后我卡在了该部分上,并且我没有在数据库中获得选定的值。

<form action="" method="post">
    <div class="close">+</div>
    <h2> Select preferred advisor from dropdown</h2>
<?php
    $query="SELECT advisor_name FROM advisor_names";
    $queryenter code here_run=mysqli_query($con,$query);
    if(mysqli_num_rows($query_run)>0)
    {
        echo '<select name="Advisors">';
        while($row=mysqli_fetch_assoc($query_run))
        {
            $selected_advisor=$rows['advisor_name'];
            echo "<option value>".$row["advisor_name"]."</option>";
        }
        echo '</select>';
    }
    ?>
  <br><br>

  <a href=""> <input name="mod_btn" type="submit" class="button" value="Submit"></a>
<!--  <a href=""> <input name="mod_btn" type="submit" class="button"></a> -->
  <!--<input type="submit">-->
<?php
if(isset($_POST['mod_btn']))
{
    $query="INSERT INTO `appointment`(`number`, `advisor`) VALUES (NULL,'$selected_advisor');";
    $query_run=mysqli_query($con,$query);
    if($query_run)
    {
        echo '<script type="text/javascript"> alert("Query run sucessful")</script>';
    }
}

查询执行但值未显示在数据库中。

标签: phphtmlmysql

解决方案


您不会为每个选项填充一个值,并且通过value在选项标签中指定您将值设为空白:

echo "<option value>".$row["advisor_name"]."</option>";

你应该做的是:

echo "<option value=".$row["advisor_name"].">".$row["advisor_name"]."</option>";

$selected_insert此外,除非您已经修改了变量,否则您不会在查询中使用。相反,您可能应该使用$_POST['Advisors'].

然后,最重要的是,你们所有人都应该养成为所有查询使用准备好的语句的习惯。如果没有,那么您就会对SQL 注入敞开心扉。


推荐阅读