Código:
y el de php:<html> <head> <title>Insercción de Datos</title> </head> <body> <center><h2>Tabla «demo4»<br>Formulario de altas<h2></center> <form name="altas" method="post" action="procesar.php"> <table bgcolor="#E9FFFF" align="center" border=2> <tr> <td align="right">Escribe tu D.N.I. :</td> <td align="left"><input type="text" name="p_v1" value="" size=8></td> </tr> <tr> <td align="right">Nombre:</td> <td align="left"><input type="text" name="p_v2" value="" size=20></td> </tr> <tr> <td align="right">Primer Apellido:</td> <td align="left"><input type="text" name="p_v3" value="" size=15></td> </tr> <tr> <td align="right">Segundo Apellido:</td> <td align="left"><input type="text" name="p_v4" value="" size=15></td> </tr> <tr> <td align="right">Fecha de Nacimiento:</td> <td align="left"> <select name="p_v5[2]"> <? for($i=0;$i<32;$i++){ echo "<option>$i</option>"; } ?> </select> de <select name="p_v5[1]"> <? for($i=0;$i<13;$i++){ echo "<option>$i</option>"; } ?> </select> de <select name="p_v5[0]"> <? for($i=1901;$i<2005;$i++){ echo "<option>$i</option>"; } ?> </select> </td> </tr> <tr> <td align="right">Hora:</td> <td align="left"> <select name="p_v7[0]"> <? for($i=0;$i<24;$i++){ echo "<option>$i</option>"; } ?> </select> H <select name="p_v7[1]"> <? for($i=0;$i<60;$i++){ echo "<option>$i</option>"; } ?> </select> M <select name="p_v7[2]"> <? for($i=0;$i<60;$i++){ echo "<option>$i</option>"; } ?> </select> S </td> </tr> <tr> <td align="right">Sexo:</td> <td align="left"> <input type="radio" name="p_v6" value="M" checked> Masculino <input type="radio" name="p_v6" value="F"> Femenino </td> </tr> <tr> <td align="right">Fumador:</td> <td align="left"> <input type="radio" name="p_v8" value="1" checked>Si <input type="radio" name="p_v8" value="0">No </td> </tr> <tr> <td align="right">Idiomas: (<i>Si habla varios seleccionarlos<br> pulsando con el mouse encima de <br> cada uno de ellos con la tecla<br> <b>Ctrl</b> presionada</i>) </td> <td align="left"> <SELECT MULTIPLE name="p_v9[]" SIZE=6> <option value=1>Castellano</option> <option value=2>Ingles</option> <option value=4>Frances</option> <option value=8>Bulgaro</option> <option value=16>Aleman</option> <option value=32>Chino</option> </SELECT> </td> </tr> </table> <br> <center> <input type="submit" Value=" Enviar "> <input type="reset" Value= " Borrar "> </center> </form> </body> </html>
Código PHP:
<html>
<head>
<title>Recoger Variables del Formulario</title>
</head>
<body>
<?
# Recogemos en una variable el Nombre de la Base de datos
$base="edwarddb";
# Recogemos en una Variable el Nombre de la Tabla
$tabla="demo4";
# Recogemos la Variable Fumador
if($_POST['p_v8']==0){
$_POST['p_v8']='"\n"'; //Asignamos NULL
}else{
$_POST['p_v8']='""'; //Asignamos Cadena Vacia
}
# Recogemos la Variable Idiomas
# El truco de asignar en el formulario valores 1,2,4,8,16,32 a las opciones de idioma
# nos permite sumarlos aquí para obtener el valor conjunto
# aqui se suman todos los valores de la matriz pasada desde el formulario
foreach($_POST['p_v9'] as $valor) {
$_POST['p_v9']+=$valor;
};
# Establecemos la Conexion con el Servidor
$conex=mysql_connect("localhost","root","");
# Asignamos la Conexion a la Base de datos determinada
mysql_select_db($base,$conex);
# Preparamos la Sentencia y Añadimos el Registro
mysql_query("INSERT $tabla (DNI,Nombre,Apellido1,Apellido2,Nacimiento,Hora,Sexo,Fumador,Idiomas) VALUES ('".$_POST['p_v1']."','".$_POST['p_v2']."','".$_POST['p_v3']."','".$_POST['p_v4']."','".$_POST['p_v5'][0]."-".$_POST['p_v5'][1]."-".$_POST['p_v5'][2]."','".$_POST['p_v7'][0].":".$_POST['p_v7'][1].":".$_POST['p_v7'][2]."','".$_POST['p_v6']."','".$_POST['p_v8']."','".$_POST['p_v9']."')",$conex);
//$v5=$_POST['p_v5'][0]."-".$_POST['p_v5'][1]."-".$_POST['p_v5'][2];
# Verificamos si Hubo Exito o Fracaso
# Comprobamos el Resultado de la inserccion
# El error CERO significa no error
# El error 1062 Clave duplicada
# en otros errores forzamos a que nos ponga el número de error
# y el significado de ese error (aunque sea en ingles)....
if(mysql_errno($conex)==0){echo "<h2>REGISTRO AÑADIDO</h2><br>";
}else{
if(mysql_errno($conex)==1062){echo "<h2>No ha Podido añadirse el Registro<br>Ya existe un Campo con ese DNI</h2><br>";
}else{
$numerror=mysql_errno($conex);
$descerror=mysql_error($conex);
echo "<h2>Se ha Producido un error No: $numerror que corresponde a: $descerror </h2><br>";
}
}
# Cerramos la Conexion
mysql_close($conex);
?>
</body>
</html>