Как вставить данные формы в таблицу базы данных MySQL - PullRequest
5 голосов
/ 31 января 2010

Итак, у меня есть сценарий регистрации:

HTML:

<form action="register.php" method="POST">
    <label>Username:</label> <input type="text" name="username" /><br />
    <label>Password:</label> <input type="text" name="password" /><br />

    <label>Gender:</label>
    <select name="gender">
      <optgroup label="genderset">
        <option value="Male">Male</option>
        <option value="Female">Female</option>
        <option value="Hermaphrodite">Hermaphrodite</option>
        <option value="Not Sure!!!">Not Sure!!!</option>
      </optgroup>
    </select><br />
<input type="submit" value="Register" />
</form>

PHP / SQL:

<?php

$username = $_POST['username'];
$password = $_POST['password'];
$gender = $_POST['gender'];

mysql_query("INSERT INTO registration_info (username, password, gender) VALUES ('$username', '$password', '$gender')
")  

?>

Проблема в том, что имя пользователя и пароль вставляются в таблицу "registration_info" просто отлично. Но пол ввода из выпадающего меню выбора не. Может кто-нибудь сказать мне, как это исправить, спасибо.

Ответы [ 8 ]

1 голос
/ 10 мая 2010

проверьте тип данных в базе данных, может быть несоответствие

1 голос
/ 24 мая 2016

Попробуйте это, если вы взяли половое поле как целое число в базе данных

<select name="gender">
  <optgroup label="genderset">
    <option value="1">Male</option>
    <option value="2">Female</option>
    <option value="3">Hermaphrodite</option>
    <option value="4">Not Sure!!!</option>
  </optgroup>
</select>

Затем выбранное значение вставляется в базу данных

0 голосов
/ 24 мая 2016

На ваш вопрос есть два варианта: -

1) If you want to store the gender value in your database then change the datatype of gender field to varchar and then try again

2) If your gender field is integer in database then you have to make changes in select option value like following 

<select name="gender">
  <optgroup label="genderset">
    <option value="1">Male</option>
    <option value="2">Female</option>
    <option value="3">Hermaphrodite</option>
    <option value="4">Not Sure!!!</option>
  </optgroup>
</select>

Второй вариант аналогичен предложению @sneha.

Это может вам помочь.

0 голосов
/ 07 января 2016

Создайте переменную, скажем, $ gend в файле php.

Тогда

$ Gend = $ _ POST [ 'пол'];

Затем перейдите к:

mysql_query ("INSERT INTO registration_info (имя пользователя, пароль, пол) ЗНАЧЕНИЯ ('$ username', '$ password', '$ gend') ");

Попробуйте это.

0 голосов
/ 04 февраля 2010

<? PHP echo var_dump ($ _ POST ['пол']); ?>

Это тебе что-нибудь говорит? Может быть, ваш гендерный тип данных (в вашей таблице) не совместим с тем, что вы положили в него? Возможно, это ENUM ('M', 'F'), например.

0 голосов
/ 31 января 2010
  1. У вас нет password ввода здесь.
  2. Ваши параметры gender select box не имеют значений.
  3. Использование mysql_escape_string не менее

    $ username = mysql_escape_string ($ _ POST ['username']);

или парсинг до int, если вы, кроме значения int.

$id = (int) $_POST['id'];
0 голосов
/ 31 января 2010

Вам необходимо установить атрибут value в элементах списка в HTML.

, например

<option value="Male">Male</option>
0 голосов
/ 31 января 2010

Вы не задали ни одному из параметров значение, поэтому вставляется только пустая строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...