php - 在数据库的下拉列表中显示值并将所选值存储回数据库中的不同表中
问题描述
我正在做一个项目,我想从数据库中显示一个下拉列表,我可以这样做,但是在做出选择后我卡在了该部分上,并且我没有在数据库中获得选定的值。
<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>';
}
}
查询执行但值未显示在数据库中。
解决方案
您不会为每个选项填充一个值,并且通过value
在选项标签中指定您将值设为空白:
echo "<option value>".$row["advisor_name"]."</option>";
你应该做的是:
echo "<option value=".$row["advisor_name"].">".$row["advisor_name"]."</option>";
$selected_insert
此外,除非您已经修改了变量,否则您不会在查询中使用。相反,您可能应该使用$_POST['Advisors']
.
然后,最重要的是,你们所有人都应该养成为所有查询使用准备好的语句的习惯。如果没有,那么您就会对SQL 注入敞开心扉。
推荐阅读
- python - 在 Pandas 中使用 SQLAlchemy 清理数据库连接
- ruby-on-rails-4 - 模型属性不是持久化的轨道
- mysql - 在多个表中查找包含电子邮件的所有行
- javascript - 如何在实时聊天或机器人聊天中启用音频音效?
- authentication - NetSuite SuiteTalk 令牌身份验证:登录尝试无效
- javascript - 未捕获(承诺中)错误:意外的令牌 < 更新打字稿类型定义
- javascript - 在三个js中用颜色填充线条之间的区域
- python - 为什么,在浮点运算中,0.9999999999999999 !=1 但 0.9999999999999999 + 1 == 2
- php - 为前 3 个帖子添加单独的课程 - Wordpress
- spring - 不查询同一张表时如何使用@formula