2010-01-30 24 views
5

así que tengo este script de registro:Cómo insertar los datos del formulario en la tabla de base de datos MySQL

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

El 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') 
") 

?> 

El problema es, la el nombre de usuario y la contraseña se insertan en la tabla "registration_info" muy bien. Pero la entrada de Género del menú desplegable de selección no. ¿Puede alguien decirme cómo arreglar esto, gracias?

+0

Nunca, nunca, jamás puse parámetros de formulario en una consulta como esa. Pruebe los parámetros de enlace (http://uk.php.net/manual/en/mysqli.prepare.php) en su lugar –

+0

Sí, sé que esto no es para nada seguro, solo estoy practicando lo básico, este script nunca irá en línea :) – Richard

+2

Es posible que desee hacer un print_r ($ _ POST) y ver cómo ingresan los datos en su secuencia de comandos, lo que facilitará la depuración. – Erik

Respuesta

0

No dio ningún valor a ninguna de las opciones, por lo que solo se inserta una cadena vacía.

+0

Lo siento, olvidé hacer eso cuando reescribí el script aquí, en el original tengo valores dentro de cada opción, y todavía no funciona. – Richard

0

Debe establecer el atributo de valor en los elementos de la lista en el HTML.

p. Ej.

<option value="Male">Male</option> 
+0

Lo siento, me olvidé de hacer eso cuando reescribí el script aquí, en el original tengo valores dentro de cada opción, y todavía no funciona. – Richard

0
  1. Usted no dispongan de entradas password aquí.
  2. Sus genderselect box opciones no tienen valores.
  3. Uso mysql_escape_string al menos

    $ usuario = mysql_escape_string ($ _POST [ 'nombre de usuario']);

o analizar a int excepto si int valor.

$id = (int) $_POST['id']; 
0

< php echo var_dump ($ _POST [ 'género']); ? >

¿Eso te dice algo? ¿Tal vez su tipo de datos de género (en su tabla) no es compatible con lo que pone en él? Quizás es un ENUM ('M', 'F') por ejemplo.

1

cheque el tipo de datos en la base de datos, podría haber un desajuste

+0

Intenta ejecutar la consulta a través de phpmyadmin manualmente? –

-1

crear una variable decir, $ gend en el archivo php.

Entonces,

$ gend = $ _POST [ 'género'];

A continuación, proceder a:

mysql_query ("INSERT INTO registration_info (nombre de usuario, contraseña, género) VALUES ('$ nombre de usuario', '$ password', '$ gend') ");

Pruebe esto.

+0

Esto no responde la pregunta. No es diferente de lo que OP ya hizo en el código provisto. – Tristan

1

prueba este si ha tomado el campo de género como número entero en la base de datos se inserta

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

valor Entonces seleccionada en la base de datos

-1

Hay dos opciones para su pregunta: -

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> 

La segunda opción es la misma que @sneha suggestion.

Te puede ayudar.

+0

¿por qué votar abajo? –

Cuestiones relacionadas