Php 从下拉列表中获取值并将其插入数据库
您好,我有一个下拉列表,其中包含从我的数据库中的表中获取的选项,我希望当用户选择其中一个选项时将其存储在数据库的另一个表中。我有一个select by的代码,无法找到获得正确值的方法来存储。 这是下拉列表的代码Php 从下拉列表中获取值并将其插入数据库,php,mysql,drop-down-menu,Php,Mysql,Drop Down Menu,您好,我有一个下拉列表,其中包含从我的数据库中的表中获取的选项,我希望当用户选择其中一个选项时将其存储在数据库的另一个表中。我有一个select by的代码,无法找到获得正确值的方法来存储。 这是下拉列表的代码 <select id="SelectDisease" name="disease"> <?php $sql = mysql_query("SELECT name FROM disease"); while ($row = mysql_fetch_
<select id="SelectDisease" name="disease">
<?php
$sql = mysql_query("SELECT name FROM disease");
while ($row = mysql_fetch_array($sql))
{
echo "<option value=$disease>" . $row['name'] . "</option>";
}
?>
</select>
这是插入代码
queryMysql("INSERT INTO patient (fname,lname,username,email,password,gender,age,disease,spid) VALUES('$fname','$lname','$username','$email', '$password','$PatientG','$PatientAge','$disease','$PatientSPID')");
die("<h4>Account created</h4>Please Log in.<br /><br />");
queryMysql(“插入患者(fname、lname、用户名、电子邮件、密码、性别、年龄、疾病、spid)值(“$fname”、“$lname”、“$username”、“$email”、“$password”、“$PatientG”、“$PatientAge”、“$disease”、“$PatientSPID”);
死亡(“帐户创建请登录。
”);
我不确定是否正确理解了您的问题,但这里有一个方法:
操作的
标记中的
标记包含到另一个PHP页面
$disease=$\u POST['disease']
echo "<option value=$disease>" . $row['name'] . "</option>";
echo”“$行['name']。"";
到
echo”“$行['name']。"";
这有用吗?这有点乱,所以这可能是一篇乱七八糟的文章,但我会尝试澄清我认为你在试图做什么。对于您选择的输入:
<select id="SelectDisease" name="disease">
<?php
$sql = mysql_query("SELECT name FROM disease");
while ($row = mysql_fetch_array($sql)){
echo "<option value='".$row['name']."'>".$row['name']."</option>";
}
?>
</select>
那么您的查询应该可以正常工作:
queryMysql("INSERT INTO patient
(fname,lname,username,email,password,gender,age,disease,spid)
VALUES('$fname','$lname','$username','$email', '$password','$PatientG','$PatientAge','$disease','$PatientSPID')");
如果这不起作用,请评论任何错误,我们将尝试整理它们
注意
这是难以置信的不安全。我从不建议在实时应用程序上执行此操作,因为SQL注入非常容易。另外,请注意MySQL函数正在被弃用。查找MySQLi或PDO并学习如何实现这些功能
祝你好运。这是在表单标签内吗?如果是这样,请尝试使用$\u POST['disease']获取所选的值。
“
可能缺少value=“”周围的引号
哪里定义了$disease。@Timleis,不是这样,因为如果我像你说的那样,它在table@NickBourlai我的意思是,$disease
在当前代码段中未定义。除非你在其他地方定义它。@NickBourlai好的,在哪里?现在,如果定义了$disease
,则每个选项都将具有相同的值。这就是你想要的吗?我有表单标签,而且我读了变量,但仍然不工作。你的表单标签中有METHOD=“POST”吗?是的,我只是不想在问题中发布整个代码。。。它给了我这个错误(语法错误,意外的'$row'(T_变量),期望),这是因为他没有逃逸双引号。如果你使用语法突出显示编辑器,你会很容易看到。对不起,我犯了一些语法错误,正如@ElefantPhace所说的。再试一次。
$fname = $_POST['fname'];
$lname = $_POST['lname'];
... // Etc for each input you have.
$disease = $_POST['disease'];
queryMysql("INSERT INTO patient
(fname,lname,username,email,password,gender,age,disease,spid)
VALUES('$fname','$lname','$username','$email', '$password','$PatientG','$PatientAge','$disease','$PatientSPID')");