使用下拉菜单,PHP和MySQL将数据输入数据库

时间:2015-03-10 20:50:26

标签: php mysql

我创建了一个按预期工作的简单寄存器系统,尽管我想让用户在注册时从下拉菜单中选择一个值,例如:男女不限。然后,用户将在数据库中区分为男性或女性,以及他们的用户名和密码。我正在使用一个简单的php下拉菜单来选择来自的数据。

我想知道如何将其实现到我的注册系统中,以允许用户在注册时从下拉菜单中选择性别,并将其与用户名和密码一起插入数据库。感谢

HTML -

<form action="" method="POST">
    <select name="formGender">

<option value="M">Male</option>
<option value="F">Female</option>

</select>

PHP -

if(isset($_POST["submit"])){



if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];

$con=mysql_connect('localhost','root','') or die(mysql_error());

mysql_select_db('user_registration') or die("cannot select DB");

$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)

3 个答案:

答案 0 :(得分:1)

我将让您处理if ($_POST[...])业务 - 这将更多地向您展示如何使用预准备语句。我已经从http://php.net/manual/en/mysqli.prepare.php复制了此内容,然后进行了更改。

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$gender = $_POST['formGender'];
$username = $_POST['username'];
$password = $_POST['password']; // obviously you'll encrypt or something

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "INSERT INTO table (username, password, gender) VALUES (?, ?, ?)")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "sss", $username, $password, $gender);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

答案 1 :(得分:0)

<form method="POST" action="typewhatyouwant.php">    
    //here can be other form fields.....
    <select name="gender">
        <option value="male">Male</option>
        <option vaue="female">Female</option>
    </select>
    <input type="Submit" value="Register"/>
</form>
//Server Side "typewhatyouwant.php"
$gender = $_POST['gender'];
$con = mysqli_connect("host","username","pass","dbname");
$ins = mysqli_query($con, "INSERT INTO `dbname` VALUES ('$gender')");

这是保存表单数据的简单客户端 - 服务器模型。用户单击“提交”按钮后,将激活表单方法,并通过HTTP Post方法将数据发送到“typewhatyouwant.php”。在php中,所有帖子数据都保存在$ _POST超全局中,这是关联数组,这意味着您可以通过在$ _POST数组中正确键入name属性值作为键来获取每个表单字段的值。所以$ gender variable的值是select元素的值。 使用mysqli_connect函数连接到数据库,mysqli_query将$ gender变量的值插入表中。

答案 2 :(得分:0)

希望我能理解你的问题,但听起来我觉得你有一份注册表,而且你想让其中一个问题使用下拉菜单而不是文字选项。

如果您有一个静态列表,您希望他们可以选择,例如您在示例中提供的性别,则可以使用

<form action="register.php" method="post">
   ...
   <select name="gender"> 
      <option>Male</option>
      <option>Female</option>
   </select>
</form>

然后制作你的&#34; register.php&#34;或者你选择称呼的任何东西说:

//Create mysqli object
$link = new mysqli($db_host, $db_user, $db_pass, $db_name);

// Check connection
if($link === false){
   die("ERROR: Could not connect. " . mysqli_connect_error());
}

//Set variables for insert

$gender= $_POST['gender'];

//Insert data (you'll use all your form fields)
$sql = "INSERT INTO yourtablename (name, email, gender, etc)
VALUES ('$name', '$email', '$gender','$etc')";

if(mysqli_query($link, $sql)){

    header('Location: whereyouwantusertoendup.php');
    } else{
    echo "There was an error";
}
exit;