2015-03-10 2 views
0

Я создал простую систему регистрации, которая работает по назначению, хотя я хотел бы дать пользователю возможность выбрать значение из выпадающего меню, поскольку они зарегистрировать, например Мужчина или женщина. Затем пользователь будет различим в базе данных как мужчина или женщина, а также их имя пользователя и пароль. Я использую простое раскрывающееся меню php для выбора данных.Ввод данных в базу данных с помощью выпадающего меню, PHP и MySQL

Я хотел бы знать, как я мог бы реализовать это в моей системе регистрации, чтобы пользователи могли выбирать пол из выпадающего меню, когда они регистрируются и вставляются в базу данных вместе с их именем пользователя и паролем. Благодаря

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) 
+5

Если вы добавили к этому вопрос, возможно, мы сможем вам помочь. Может быть, даже какой-то код. –

+2

Этот сайт предназначен для программирования вопросов. Это не ваша личная система записи списка «todo». –

+0

Можете ли вы показать нам какой-то код, иначе я начну вводить вопрос о низком качестве, и @halfer придет сюда, чтобы предупредить меня. – HddnTHA

ответ

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-почты на «typewhatyouwant.php». В php все почтовые данные сохраняются в $ _POST superglobal, что является ассоциативным массивом, и это означает, что вы можете получить значение каждого поля формы, введя там правильные значения атрибутов name в массиве $ _POST в качестве ключей. поэтому значение переменной $ gender является значением элемента select. С помощью функции mysqli_connect, которую вы подключаете к базе данных, mysqli_query вставляет значение переменной $ gender в таблицу.

+1

Это плохой ответ, потому что содержит только код, объясняйте OP, что ваш код достигает – HddnTHA

+1

Пожалуйста, добавьте объяснение того, что вы сделали, и почему вы сделали это таким образом не только для OP, но и для будущих посетителей SO. Как ваш ответ решает проблему? –

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); 
?> 
+0

Хороший ответ, но вы должны рассмотреть возможность изменения '$ _POST ['gender']' на '$ _POST ['formGender']', потому что имя формы OP для пола - 'formGender' – HddnTHA

+0

Whew, @HddnTHA, надеюсь, что я не поставил 2 пробела после моих периодов либо ... :-) –

+0

Трудно писать кодовые блоки с тонким странным mobilr qwerty, извините за него (-: – HddnTHA

0

Надеется, я понял ваш вопрос, но это звучит для меня как у вас есть регистрационная форма, и вы хотите, один из вопросов, чтобы использовать выпадающий, а не вариант текста.

Если у вас есть статический список, который вы хотите, чтобы выбрать из, таких как пол, как вы дали в вашем примере, вы можете просто использовать

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

Затем сделайте свой «register.php» или все, что вы выбираете чтобы назвать это:

//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; 
+0

Mysqli не имеет смысла без подготовленных операторов – HddnTHA

Смежные вопросы