Categoria: Programacion Tema: Php Titulo: INSERT usando una consulta previa a una tabla php
Fecha del Tema: 2013-04-22 18:47:27INSERT usando una consulta previa a una tabla Ahora vamos a ver como resolver el problema del alta de un alumno seleccionando el curso de la tabla "cursos". Es decir, el formulario de carga de datos no es HTML puro ya que debemos cargar el control "select" con los datos de la tabla cursos. El código por lo tanto queda de la siguiente forma: <html> <head> <title>Problema</title> </head> <body> <form action="pagina2.php" method="post"> Ingrese nombre: <input type="text" name="nombre"><br> Ingrese mail: <input type="text" name="mail"><br> Seleccione el curso: <select name="codigocurso"> <?php $conexion=mysql_connect("localhost","root","z80") or die("Problemas en la conexion"); mysql_select_db("phpfacil",$conexion) or die("Problemas en la selección de la base de datos"); $registros=mysql_query("select codigo,nombrecur from cursos",$conexion) or die("Problemas en el select:".mysql_error()); while ($reg=mysql_fetch_array($registros)) { echo "<option value="$reg[codigo]">$reg[nombrecur]</option>"; } ?> </select> <br> <input type="submit" value="Registrar"> </form> </body> </html> El algoritmo es similar a cuando trabajamos con una tabla, pero el control "select" lo cargamos con los datos de la tabla "cursos": while ($reg=mysql_fetch_array($registros)) { echo "<option value="$reg[codigo]">$reg[nombrecur]</option>"; } Dentro del while generamos todas las opciones que contiene el "select" imprimiendo el campo nombrecur y asociando el campo código a la propiedad value (que es en definitiva el código que necesitamos rescatar en la otra página) La página que efectúa el insert es exactamente la misma que vimos anteriormente: <html> <head> <title>Problema</title> </head> <body> <?php $conexion=mysql_connect("localhost","root","z80") or die("Problemas en la conexion"); mysql_select_db("phpfacil",$conexion) or die("Problemas en la seleccion de la base de datos"); mysql_query("insert into alumnos(nombre,mail,codigocurso) values (`$_REQUEST[nombre]`, `$_REQUEST[mail]`, $_REQUEST[codigocurso])", $conexion) or die("Problemas en el select".mysql_error()); mysql_close($conexion); echo "El alumno fue dado de alta."; ?> </body> </html>
INSERT usando una consulta previa a una tabla Ahora vamos a ver como resolver el problema del alta de un alumno seleccionando el curso de la tabla "cursos". Es decir, el formulario de carga de datos no es HTML puro ya que debemos cargar el control "select" con los datos de la tabla cursos. El código por lo tanto queda de la siguiente forma: <html> <head> <title>Problema</title> </head> <body> <form action="pagina2.php" method="post"> Ingrese nombre: <input type="text" name="nombre"><br> Ingrese mail: <input type="text" name="mail"><br> Seleccione el curso: <select name="codigocurso"> <?php $conexion=mysql_connect("localhost","root","z80") or die("Problemas en la conexion"); mysql_select_db("phpfacil",$conexion) or die("Problemas en la selección de la base de datos"); $registros=mysql_query("select codigo,nombrecur from cursos",$conexion) or die("Problemas en el select:".mysql_error()); while ($reg=mysql_fetch_array($registros)) { echo "<option value="$reg[codigo]">$reg[nombrecur]</option>"; } ?> </select> <br> <input type="submit" value="Registrar"> </form> </body> </html> El algoritmo es similar a cuando trabajamos con una tabla, pero el control "select" lo cargamos con los datos de la tabla "cursos": while ($reg=mysql_fetch_array($registros)) { echo "<option value="$reg[codigo]">$reg[nombrecur]</option>"; } Dentro del while generamos todas las opciones que contiene el "select" imprimiendo el campo nombrecur y asociando el campo código a la propiedad value (que es en definitiva el código que necesitamos rescatar en la otra página) La página que efectúa el insert es exactamente la misma que vimos anteriormente: <html> <head> <title>Problema</title> </head> <body> <?php $conexion=mysql_connect("localhost","root","z80") or die("Problemas en la conexion"); mysql_select_db("phpfacil",$conexion) or die("Problemas en la seleccion de la base de datos"); mysql_query("insert into alumnos(nombre,mail,codigocurso) values (`$_REQUEST[nombre]`, `$_REQUEST[mail]`, $_REQUEST[codigocurso])", $conexion) or die("Problemas en el select".mysql_error()); mysql_close($conexion); echo "El alumno fue dado de alta."; ?> </body> </html>