RomiChan Posted November 3, 2015 Report Share Posted November 3, 2015 Hace poco tuve un examen y no me fue bien por dos cosas:La primera, tengo un formulario para crear un curso. Y quiero que las llaves foráneas se carguen en listas desplegables.Tengo que hacer la conexión en el código de este formulario para después seleccionar esos datos? tengo que usar JOIN? Presiento que no debe ser muy difícil, pero lamentablemente no me da la cabeza para resolverlo :/Espero alguien pueda ayudarme u_uGracias de antemano. PD: Mejor creare otro tema con la otra duda =P Link to comment Share on other sites More sharing options...
cañangasñangas Posted November 4, 2015 Report Share Posted November 4, 2015 lenguaje, bd porfavor Link to comment Share on other sites More sharing options...
RomiChan Posted November 4, 2015 Author Report Share Posted November 4, 2015 Perdoon, creé este tema muy rápido y se me fue (andaba un poco desesperada en saber esto xD).En fin, lo estoy haciendo con lenguaje php. Aquí están las tablas: Formulario: <? session_start(); if(!isset($_SESSION['username'])) { header("Location: login_coor.php"); exit; } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sin título</title> </head> <body><center> <h1>Crear curso:</h1> <form action="crearcursodb.php" method="post"><table width="293" border="0"> <tbody> <tr> <td>Codigo:</td> <td><input type="text" name="codigo"></td> </tr> <tr> <td width="133">Nombre curso:</td> <td width="144"><input type="text" name="nombre"></td> </tr> <tr> <td>Curso obligatorio:</td> <td><select name="obligatorio"> <option>s</option> <option>n</option> </select></td> </tr> <tr> <td>Rut profesor asignado:</td> <td><input type="text" name="rut_docente"></td> </tr> <tr> <td>Rut coordinador</td> <td><input type="text" name="rut_coordinador"></td> </tr> <tr> <td> </td> <td><input type="submit" name="crear" value="Crear"></td> </tr> </tbody> </table> </form> </center><br> <a href="opciones.php">Volver</a> </body> </html> "crearcursobd.php" <? session_start(); if(!isset($_SESSION['username'])) { header("Location: login_coor.php"); exit; } ?> <? include "conexion.php"; if(isset($_POST['codigo']) && !empty($_POST['codigo']) && isset($_POST['nombre']) && !empty($_POST['nombre']) && isset($_POST['obligatorio']) && !empty($_POST['obligatorio']) && isset($_POST['rut_docente']) && !empty($_POST['rut_docente']) && isset($_POST['coordinador_rut']) && !empty($_POST['coordinador_rut'])) { $con=mysql_connect($host,$user,$pw) or die("Problemas al conectar al servidor."); mysql_select_db($db,$con) or die("Problemas al conectar a la bd."); mysql_query("INSERT INTO curso (codigo, nombre, obligatorio, rut_docente, coordinador_rut) VALUES ('$_POST[codigo]','$_POST[nombre]','$_POST[obligatorio]','$_POST[rut_docente]','$_POST[coordinador_rut]'",$con) or die("Problemas en la consulta".mysql_error()); echo "Datos insertados."; } else { echo "No se puede crear el curso."; } ?> Eso es lo que intente hacer con las claves foráneas sin ser una lista desplegable. Cosa que tampoco funcionó, y todavía no se por qué, ya que escribirlas a mano los datos deberían insertarse igualmente. Muchas gracias de antemano u.u Link to comment Share on other sites More sharing options...
susodicho Posted November 5, 2015 Report Share Posted November 5, 2015 :mmm: En el formulario, el campo de texto se llama rut_coordinador, pero en el archivo crearcursodb.php estás tratando de acceder a coordinador_rut. No sé qué será lo que te complica para llenar la lista, por lo que entiendo, sólo tendrías que hacer un SELECT que te devuelva todas las filas de la tabla docente . Sobre la forma en que usas el campo obligatorio:No me parece buena idea usar una lista desplegable para seleccionar si un curso es obligatorio o no. Me parece más lógico usar una casilla de verificación (también conocida como checkbox). <label><input type="checkbox" name="obligatorio" />Esto es obligatorio</label>Deberías usar textos descriptivos en la interfaz de usuario, "s" y "n" no los encuentro muy claros. Me da la impresión que trataste de que los valores mostrados en la interfaz de usuario calzaran con los que usas internamente en tu base de datos (ya que el campo obligatorio es de tipo CHAR y toma valores "s" y "n") y así lograr que el INSERT te saliera más fácil ;) . Creo que mejor declaras este campo como BOOL, lo encuentro más lógico. :huasonto: Link to comment Share on other sites More sharing options...
RomiChan Posted November 6, 2015 Author Report Share Posted November 6, 2015 Lo puse así, y solo me sale el primer rut de cada campo (después cambiaré lo del campo obligatorio =P). <? include "conexion.php"; //session_start(); //if(!isset($_SESSION['username'])) //{ //header("Location: login_coor.php"); //exit; //} $con=mysql_connect($host,$user,$pw) or die("Problemas al conectar al servidor"); mysql_select_db($db,$con) or die("Problemas al conectar a la BD"); $consulta=mysql_query("SELECT rut FROM docente") or die("Problemas al hacer la consulta."); $row=mysql_fetch_array($consulta); $consulta2=mysql_query("SELECT rut FROM coordinador"); $row2=mysql_fetch_array($consulta2); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sin título</title> </head> <body><center> <h1>Crear curso:</h1> <form action="crearcursodb.php" method="post"><table width="293" border="0"> <tbody> <tr> <td>Codigo:</td> <td><input type="text" name="codigo"></td> </tr> <tr> <td width="133">Nombre curso:</td> <td width="144"><input type="text" name="nombre"></td> </tr> <tr> <td>Curso obligatorio:</td> <td><select name="obligatorio"> <option>s</option> <option>n</option> </select></td> </tr> <tr> <td>Rut profesor asignado:</td> <td> <select name="rut_docente"> <option><? echo $row['rut'] ?></option> </select></td> </tr> <tr> <td>Rut coordinador</td> <td><select name="rut_docente"> <option><? echo $row2['rut'] ?></option> </select></td> </tr> <tr> <td> </td> <td><input type="submit" name="crear" value="Crear"></td> </tr> </tbody> </table> </form> </center><br> <a href="opciones.php">Volver</a> </body> </html> Como puedo arreglarlo para que se carguen los demás campos? Link to comment Share on other sites More sharing options...
susodicho Posted November 6, 2015 Report Share Posted November 6, 2015 (edited) <_< mysql_fetch_array devuelve un arreglo para cada fila devuelta por la consulta...¿en qué parte estás recorriendo todas esas filas? :huasonto: Edited November 6, 2015 by susodicho Link to comment Share on other sites More sharing options...
RomiChan Posted November 6, 2015 Author Report Share Posted November 6, 2015 Y como las recorro? xDPerdón por lo noob, la verdad empecé a aprender este lenguaje hace poco, solo por el examen, y solo aprendí lo necesario para conectarme, hacer consultas, etc. Y si no es por el lenguaje, simplemente no me da cabeza para codificar en general xd (see, elegí mal la carrera). En fiin, espero puedas ayudarme y me tengas paciencia xD Link to comment Share on other sites More sharing options...
Leoxz Posted November 6, 2015 Report Share Posted November 6, 2015 while($row = mysql_fetch_assoc($consulta)){ echo $row['columnaBD']; } Link to comment Share on other sites More sharing options...
RomiChan Posted November 6, 2015 Author Report Share Posted November 6, 2015 Muuuchas gracias =)Ya esta arreglado. Todavía no me inserta aún cambiando lo que tenia malo, pero ahí veré =P Espero pueden resolver mi otra duda. Muchas gracias otra vez =)http://www.chilecomparte.cl/foros/topic/2366796-duda-seleccionar-datos-en-listbox-e-insertarlos/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now