| |||
Insertar registro a dos tablas según la eleccion Saludos, necesito llenar un formulario de registro básico, solo que pueden haber dos tipos de personas a registrarse, docentes o alumnos, pienso usar dos botones de opción y según la selección se ingrese el dato en la tabla determinada, como podría hacer eso? puedo realizar la inserción del registro a la base de datos sin problema, pero lo que no puedo hacer es escoger a cual de las dos enviar el registro.. muchas gracias |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion Gracias por tu comentario, pero no tendría problemas al momento de querer generar alguna consulta? por ejemplo el profesor x que materia le dicta al estudiante y, ademas ya tengo armado el modelo entidad relación, y no sabria entonces como relacional la nueva tabla con las demás que ya tengo Ademas el proyecto es solo un proyecto escolar, que no creo que cresca de mas de allí, por eso pensé que seria mas fácil que mediante un botón el me envíe el registro a una u otra tabla, la cuestión es que no se como hacerlo |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion ¿Lo que quieres es que a la hora de registrarse en la web te guarde los datos en una tabla u otra? En ese caso o creas dos paginas de registro o en el formulario añadir un campo, por ejemplo un checkbox que indique si es un profesor, o un desplegable o radio button profesor alumno, y antes de guardar leer ese campo para saber donde guardarlo. Y a la hora de identificarse si sería mejor crear dos páginas distintas para profesores y alumnos. Lo que yo te decía no debería dar problemas, imagina un centro social donde lso profesores también pueden recibir clases como personas normales, eso debería ser posible. Aunque nos sea lo que tú buscas sigo pensando que sería una mejor opción hacerlo en una misma tabla. Cuando yo hacía los entidad relación para la universidad creo que casi siempre hacíamos una entidad Persona. En su día yo hice un modelo de universidad, con alumnos, asignaturas etc, pero no recuerdo como lo hicimos, pero piénsalo de esta manera, profesores y alumnos tienen muchos atributos en común, ¿cierto? pues eso suele ser una señal. Suerte con el trabajo y la decisión tómala tú porque la nota es para ti, yo sólo te doy mi opinión :)
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion lo que indicas inicialmente es lo que pienso hacer, pero utilizando una sola pagina de registro, el inicio de sesión se realiza por medio de 2 paginas diferentes, pero como comento, no se que código utilizar para que me lea el dato del chekbox y me haga el registro, pido tu colaboración en el código solo tengo los dos check box : Código PHP: |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Los radio button deben llevar el mismo nombre si no me equivoco para que sean compartidos:
Código HTML:
Ver original En el php deberás comprobar los datos por post (o por get aunque supongo que lo envías por post):
Código PHP:
Ver original Algo así debería funcionar
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion ya realice lo que me recomendaste pero me da error este el el codigo: formulario: Código HTML: Eres: Estudiante: <input name="tipo" type="radio" value="1" /> Docente:<input name="tipo" type="radio" value="0" /> <div id="cuadroregistro"> <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1"> <table align="center"> <tr valign="baseline"> <td nowrap="nowrap" align="right">Documento:</td> <td><input type="text" name="estudianteId" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Nombre:</td> <td><input type="text" name="estudianteNombre" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Correo:</td> <td><input type="text" name="estudianteCorreo" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Clave:</td> <td><input type="text" name="estudianteClave" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"> </td> <td><input type="submit" value="Insertar registro" /></td> </tr> </table> <input type="hidden" name="MM_insert" value="form1" /> </form> <p> </p> </div> Código PHP: Notice: Undefined variable: POST in C:\XAMPP\htdocs\ambientefinal\registro.php on line 74 Notice: Undefined index: estudianteId in C:\XAMPP\htdocs\ambientefinal\registro.php on line 75 Notice: Undefined index: estudianteNombre in C:\XAMPP\htdocs\ambientefinal\registro.php on line 76 Notice: Undefined index: estudianteCorreo in C:\XAMPP\htdocs\ambientefinal\registro.php on line 77 Notice: Undefined index: estudianteClave in C:\XAMPP\htdocs\ambientefinal\registro.php on line 78 fallo en el registro el error corresponde a estas lineas:
Código PHP:
Ver original |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Lo primero, línea 1:
Código PHP:
Ver original Bueno, no sé como se llaman esos archivos, o si son el mismo, supongo que tú llegas al código de php a través de:
Código HTML:
Ver original Bien, cúando hagas uso de variables $_POST o $_GET conviene comprobar que exista, en el caso de formularios deberías comprobar primero que exista el global, por ejemplo:
Código PHP:
Ver original Pues si estás haciéndolo todo bien, no sé porque te da mensajes de índices.
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion tendra algo que ver el que lo hago todo en la misma ventana? porque este es el código total de la pagina: Código HTML: <?php require_once('Connections/local.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/plantillabase.dwt.php" codeOutsideHTMLIsLocked="false" --> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- InstanceBeginEditable name="doctitle" --> <title>Documento sin título</title> <!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --> <link href="css/estiloprincipal.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="css/menu.css" type="text/css" /> <link href='http://fonts.googleapis.com/css?family=Belleza&subset=latin,latin-ext' rel='stylesheet' type='text/css'> <link href="css/cuadroregistro.css" rel="stylesheet" type="text/css" /> <link href="css/cuadrologin.css" rel="stylesheet" type="text/css" /> <link href="css/cuadrosubircurso.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="container"> <div class="header"> <?php include("includes/cabecera.php"); ?> <div class="clearfloat"></div> <?php include("includes/menu.php"); ?> <?php include("includes/sesion.php"); ?> </div> <div class="sidebar1"><!-- InstanceBeginEditable name="ContenidoIzq" --> <a href="suma.php"><img src="images/Azul.jpg" width="250" height="50" alt="azul" /></a> <a href="resta.php"><img src="images/Naranja.jpg" width="250" height="50" alt="naranja" /></a> <a href="multiplicacion.php"><img src="images/Violeta.jpg" width="250" height="50" alt="violeta" /></a> <!-- InstanceEndEditable --><!-- end .sidebar1 --></div> <div class="content"><!-- InstanceBeginEditable name="ContenidoDer" --> Eres: Estudiante: <input name="tipo" type="radio" value="1" method="post" /> Docente:<input name="tipo" type="radio" value="0" method="post"/> <div id="cuadroregistro"> <form method="post" name="form1" id="form1"> <table align="center"> <tr valign="baseline"> <td nowrap="nowrap" align="right">Documento:</td> <td><input type="text" name="estudianteId" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Nombre:</td> <td><input type="text" name="estudianteNombre" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Correo:</td> <td><input type="text" name="estudianteCorreo" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Clave:</td> <td><input type="text" name="estudianteClave" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"> </td> <td><input type="submit" value="Insertar registro" name ="submit"/></td> </tr> </table> </form> <p> </p> </div> <?php $tipo =$_POST['tipo']; $documento =$_POST['estudianteId']; $nombre =$_POST['estudianteNombre']; $correo =$_POST['estudianteCorreo']; $contrasena =$_POST['estudianteClave']; if ($tipo==1) { $insertar="insert into estudiantes(estudianteId, estudianteNombre, estudianteCorreo, estudianteClave') values ('$documento','$nombre','$correo','$contrasena')"; if (mysql_query($insertar)){ echo "materia registrada";} else { echo "fallo en el registro"; } } else if($tipo==0){ $insertar="insert into docentes(docenteId, docenteNombre, docenteCorreo, docenteClave') values ('$documento','$nombre','$correo','$contrasena')"; if (mysql_query($insertar)){ echo "materia registrada";} else { echo "fallo en el registro"; } } ?> <!-- end .content --> <!-- InstanceEndEditable --></div> <div class="footer"> <?php include("includes/pie.php"); ?> </div> <!-- end .container --></div> </body> <!-- InstanceEnd --></html> |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Ajá, eso es lo que me imaginaba, pues con lo que te puse arriba del if lo solucionas. En el action del form pon el mismo nombre de esa página. Y añade el if($_POST)... que te dije. Al meterlo todo dentro de ese if lo que haces es que el procesamiento del formulario solo se realice cuando recibas datos por POST, es decir cuando han enviado el formulario, para que quede todavía mejor prueba esta estructura:
Código PHP:
Ver original Por cierto, esto:
Código PHP:
Debe estar dentro del formulario. A ver que tal. Ver original
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Faltaba un parentesis en el if y una llave:
Código PHP:
Ver original Con eso lo que haces es que solo se ejecute el proceso del formulario cuando se envía. Además cuando es correcto rediriges a una nueva página y si es erróneo te quedas en la misma y puedes mostrar un error en el lugar que quieras ponienendo ese código php. Además podrías cargar los datos que introdujeron si es erróneo poniendo cosas del tipo:
Código PHP:
Ver original
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion ya lo corregí, no me da ningún error de sintaxis pero no me esta haciendo el registro, que podrá estar mal? el codigo final quedo asi: Código HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/plantillabase.dwt.php" codeOutsideHTMLIsLocked="false" --> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- InstanceBeginEditable name="doctitle" --> <title>Documento sin título</title> <!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --> <link href="css/estiloprincipal.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="css/menu.css" type="text/css" /> <link href='http://fonts.googleapis.com/css?family=Belleza&subset=latin,latin-ext' rel='stylesheet' type='text/css'> <link href="css/cuadroregistro.css" rel="stylesheet" type="text/css" /> <link href="css/cuadrologin.css" rel="stylesheet" type="text/css" /> <link href="css/cuadrosubircurso.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="container"> <div class="header"> <?php include("includes/cabecera.php"); ?> <div class="clearfloat"></div> <?php include("includes/menu.php"); ?> <?php include("includes/sesion.php"); ?> </div> <div class="sidebar1"><!-- InstanceBeginEditable name="ContenidoIzq" --> <a href="suma.php"><img src="images/Azul.jpg" width="250" height="50" alt="azul" /></a> <a href="resta.php"><img src="images/Naranja.jpg" width="250" height="50" alt="naranja" /></a> <a href="multiplicacion.php"><img src="images/Violeta.jpg" width="250" height="50" alt="violeta" /></a> <!-- InstanceEndEditable --><!-- end .sidebar1 --></div> <div class="content"><!-- InstanceBeginEditable name="ContenidoDer" --> <div id="cuadroregistro"> <form method="post" name="form1" id="form1"> Eres: Estudiante: <input name="tipo" type="radio" value="1" method="post" /> Docente:<input name="tipo" type="radio" value="0" method="post"/> <table align="center"> <tr valign="baseline"> <td nowrap="nowrap" align="right">Documento:</td> <td><input type="text" name="estudianteId" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Nombre:</td> <td><input type="text" name="estudianteNombre" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Correo:</td> <td><input type="text" name="estudianteCorreo" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Clave:</td> <td><input type="text" name="estudianteClave" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"> </td> <td><input type="submit" value="Insertar registro" name ="submit"/></td> </tr> </table> </form> <p> </p> </div> <?php require_once('Connections/local.php'); if(isset($_POST)){ //Si te da problemas prueba: if(isset($_POST['submit']){ $tipo =$_POST['tipo']; $documento =$_POST['estudianteId']; $nombre =$_POST['estudianteNombre']; $correo =$_POST['estudianteCorreo']; $contrasena =$_POST['estudianteClave']; if ($tipo==1) { $insertar="insert into estudiantes(estudianteId, estudianteNombre, estudianteCorreo, estudianteClave') values ('$documento','$nombre','$correo','$contrasena')"; if (mysql_query($insertar)){ //REDIRIGIR OK header('Location: '.$newURL); } else { $error = "Fallo en el registro"; } } else if($tipo==0){ $insertar="insert into docentes(docenteId, docenteNombre, docenteCorreo, docenteClave') values ('$documento','$nombre','$correo','$contrasena')"; if (mysql_query($insertar)){ //REDIRIGIR OK header('Location: '.$newURL); } else { $error = "Fallo en el registro"; } } } ?> <!-- end .content --> <!-- InstanceEndEditable --></div> <div class="footer"> <?php include("includes/pie.php"); ?> </div> <!-- end .container --></div> </body> <!-- InstanceEnd --></html> |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Tienes un error de sintaxis en los dos INSERT, hay un apostrofe de más en el último campo del INTO.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion Listo amigo por fin me ha funcionado, te agradezco enormemente la ayuda y la atención que me has prestado, si no es molestia seria posible que en la medida en que tenga dudas con el desarrollo de mi proyecto al cual aun le falta mucho, me puedas ayudar con alguna duda o inconveniente que tengas? De antemano muchas gracias por tu colaboración. |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Si claro, aunque primero intenta hacerlo tú con los conocimientos que tienes y estás adquiriendo. Después intenta hacerlo con la información que encuentras en los foros y en internet. Y por último pregunta si es necesario, siempre habrá alguien que te pueda ayudar.
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion me decidí a crear una sola tabla de acceso de usuarios en la cual identifico a docentes o estudiantes con un 0 y 1, hasta ahí todo quedo funcionando muy bien, ahora mi duda es como crear restricciones a ciertos usuarios, por ejemplo los estudiantes no tiene permiso para crear cursos nuevos, y cosas así, como haría para crear esas restricciones? |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Ese tipo de restricciones se administra usualmente por perfiles, o bien en lugar de usar un campo como flago, como parchaste, crea dos tablas, Profesor y Alumno, donde pongas atributos propios de ese tipo de instancia. De ese modo la FK de los cursos se referirá a esa tabla POrofesores, en lugar de la principal de Usuarios. Es un tipo de esquema definido en el modelo relacional extendido, que usa el concepto de herencia y jerarquías.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Insertar registro a dos tablas según la eleccion Pero volviendo un paso atrás, decidí hacer una sola sola tabla por el echo de que en una parte de mi pagina se muestra el nombre de quien inicia sesión, como estoy trabajando por medio de dreamviewer, esto lo realice con un juego de registros(consulta), entonces realice la consulta a esa sola pagina (usuarios) y así logro mostrar el nombre de quien inicia sesión, ahora con dos tablas solo podría mostrar el nombre de uno de los dos, o el estudiante o el profesor, este es el código que me bota dreamviewer al hacer esta consulta: Código PHP: |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Tu preguntaste cómo hacer para agregar restricciones a los permisos de un determinado tipo de usuario, y yo te respondo que eso se puede hacer mejor si implementas la estructura de modo que soporte funcionalmente esa limitación de un modo sencillo, basado en un esquema de tablas mejor diseñado. Si lo quieres usar o no, es tu decisión. ¿Puedes hacerlo como lo tienes ahora? Probablemente si, pero te obligará a programar muchísimo mas, porque deberás validar el tipo de usuario cada vez que se deba hacer una acción restringida. En cambio modelando de otra froma, como dependerá de la restriccion a nivel FK, por mas que quiera, si está registrado como alumno jamás podrá dar de alta datos en tablas no permitidas. Como dije, es tu decisión...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Insertar registro a dos tablas según la eleccion Lo que te dice el compañero es que los campos que tienen en común loa tengas en la misma tabla, por ejemplo usuario o persoma como en su imagen. Y si tienes campos propios del tipo de usuario los pongas en otra tabla a la que le añades una clave foránea para referenciarla. Por ejemplo, Profesor: codUsuario-sueldo-despacho... Si tu modelo no es tan complicado lo puedes dejar como está y a la hora de crear cursos, como tú dices, compruebas si es un profesor mediante el campo flag.
__________________ Dicen que las personas piensan en su lengua materna, yo lo hago en PHP |
Etiquetas: |