从下拉列表中获取值并将其插入数据库中

时间:2014-12-30 16:19:14

标签: php mysql drop-down-menu

您好我有一个下拉列表,其中包含从数据库中的表中获取的选项,当用户选择将其存储在数据库的另一个表中时,我希望这样。我有一个无法选择的代码找到获取正确值以便存储的方法。 这是下拉列表的代码......

<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 />");

2 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了您的问题,但这是一种方法:

  1. <select/>标记中的<form/>标记包含action到另一个PHP页面。
  2. 在第二个PHP页面中,读取变量$disease = $_POST['disease']
  3. 调用您的SQL插入语句
  4. 旁注:

    也许改变:

    echo "<option value=$disease>" . $row['name'] . "</option>";
    

    echo "<option value=\"" . $row['name'] . "\">" . $row['name'] . "</option>";
    

    这有用吗?

答案 1 :(得分:0)

这有点乱,所以这可能是一个混乱的帖子,但我会尝试澄清我认为你想要做的事情。对于您的选择输入:

<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>

这样,您选择的每个选项都有不同的值,而不是$disease,无论等同于什么。

接下来,您处理POST请求的位置:

$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')");

如果这不起作用,请对任何错误发表评论,我们会尝试对其进行排序。

注意

不可思议不安全。我永远不会建议在实时应用程序上执行此操作,因为SQL注入将非常简单。另请注意,MySQL函数已被弃用。查找 MySQLi PDO ,并学会实施这些。

祝你好运。