如何从动态下拉数组中提取信息以在另一个表中发布

时间:2014-12-07 02:00:31

标签: php mysql drop-down-menu

我是一个有php和我的sql的新手,我设置了我的第一个用户注册从几个不同的mysql表中提取数据。我基本上想要一个管理员可以创建gp实践的表,然后这可以在注册时显示为用户的下拉列表。

我想从gppractices中将名为GPName的字段拉到我使用的页面上的下拉列表中;

<?php $gpquery="SELECT GPName FROM gppractices";
            $gpresult=mysql_query($gpquery) or die ("Query to get data from the GP Practice list has failed: ".mysql_error()); ?>

        <select name="GPdrop" id="GPdrop">
            <?php while ($gprow=mysql_fetch_array($gpresult)) {
            $GPName=$gprow["GPName"];
                echo '<option id="GPName" value="GPName">'.
                    $GPName.
                '</option>'; } ?>
        </select>

然后我想将所选项输出到一个字符串中,该字符串将所有信息插入另一个表(用户);

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "UserDetails")) {
  $insertSQL = sprintf("INSERT INTO users (FirstName, LastName, Gender, DOB, UserPractice, Email, UserName, Password, PostCode) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['FirstName'], "text"),
                       GetSQLValueString($_POST['LastName'], "text"),
                       GetSQLValueString($_POST['Gender'], "text"),
                       GetSQLValueString($_POST['DOB'], "text"),
                       GetSQLValueString($_POST['Practice'], "text"),
                       GetSQLValueString($_POST['Email'], "text"),
                       GetSQLValueString($_POST['UserName'], "text"),
                       GetSQLValueString($_POST['Password'], "text"),
                       GetSQLValueString($_POST['PostCode'], "text"));

我遇到的问题是我似乎无法将数据库用户的下拉列入UserPractice列。我不知道如何正确定义索引并继续得到相同的错误。

注意:未定义的索引:在第78行的B:\ Program Files \ XAMMP(新)\ htdocs \ UserTests \ UserRegistration.php中练习 专栏&#39; UserPractice&#39;不能为空

我以为我可以用类似的东西修复它; $Practice = $_POST['GPdrop'];

我知道我是一个愚蠢的哑巴,我对这一切都很陌生。仍然试图通过教程等将各种东西拼凑在一起,但如果有人可以为我提供帮助并对此有所了解,我会非常感激。

1 个答案:

答案 0 :(得分:1)

问题不在PHP中,在表格中,列是&#39; UserPractice&#39;需要一个值,您发送的变量($_POST['Practice'])为空或空。

  • 更改字段&#39; UserPractice&#39;允许NULL。

  • 在尝试插入之前验证该值。