Foros del Web » Programando para Internet » PHP »

Insertar registro a dos tablas según la eleccion

Estas en el tema de Insertar registro a dos tablas según la eleccion en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/05/2015, 11:52
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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
  #2 (permalink)  
Antiguo 29/05/2015, 12:51
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Insertar registro a dos tablas según la eleccion

Puedes elegir en que tabal insertas un dato sin ningùn problema, a la hora de ejecutar la consulta, pero para ahorrarte futuros dolores de cabeza te comentaré.

Si tanto profesores como alumnos van a ser usuarios de la web, deberías crear una tabla usuarios que englobe a ambos grupos.
A mayores puedes crear un campo nuevo en esa tabla que indique si es un profesor o un alumno, pero lo que sería todavía mejor para el futuro, imagina que en el futuro hay un rol nuevo en tu web, puedes crear una tabla donde almacenes todos los roles.
Por ejemplo una tabla, Rol, hay puedes añadir nuevos roles si surgiesen y en tu tabla de usuarios añades un campo en que se referencie a la tabla de roles y en función del rol ya puedes dar unos permisos, mostrar unas cosas, etc.

Suerte
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #3 (permalink)  
Antiguo 29/05/2015, 13:16
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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
  #4 (permalink)  
Antiguo 29/05/2015, 13:39
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
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
  #5 (permalink)  
Antiguo 29/05/2015, 13:46
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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:
Estudiante: <input name="estudiante" type="radio" value="1" /> 
  
Docente:<input name="docente" type="radio" value="0" /> 
me he quedado varado en algo tan elemental como tomar los datos de soso dos chekbox y hacer la comparación para enviar a una y otra tabla.
  #6 (permalink)  
Antiguo 29/05/2015, 14:10
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
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
  1. Estudiante: <input name="docente" type="radio" value="0" />  
  2.   Docente:<input name="docente" type="radio" value="1" />

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
  1. <?php
  2. //aquí hacer comprobaciones de variables para ver que no te han tocado el codigo desde el navegador
  3. $docente = $_POST['docente'];
  4. if($docente == 1){
  5.     //Consulta insert a la tabla de profesores
  6. else if($docente == 0){
  7.     //Consulta insert tabla alumnos
  8. }else{
  9.     //Error, si ya comprobaste las variables antes no debería ser necesario
  10. }
  11. ?>

Algo así debería funcionar
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #7 (permalink)  
Antiguo 29/05/2015, 14:59
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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">&nbsp;</td>
        <td><input type="submit" value="Insertar registro" /></td>
      </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1" />
  </form>
  <p>&nbsp;</p>
</div> 
insersion en bd:

Código PHP:
<?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{
    
$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";
    }
}
?>
me da error:

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
  1. $tipo =$POST['tipo'];
  2. $documento=$_POST['estudianteId'];
  3. $nombre=$_POST['estudianteNombre'];
  4. $correo=$_POST['estudianteCorreo'];
  5. $contrasena=$_POST['estudianteClave'];
  #8 (permalink)  
Antiguo 29/05/2015, 15:24
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Insertar registro a dos tablas según la eleccion

Lo primero, línea 1:
Código PHP:
Ver original
  1. $tipo =$_POST['tipo'];

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
  1. <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">

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
  1. if(isset($_POST)){
  2.     //Todo lo del procesameinto del formulario
  3.     //Aquí puedes comprobar de forma análoga si existen la variables post que vas a utilizar y tienen valores esperados
  4.     if(isset($_POST['tipo'])){
  5.     }//etc, no es obligatorio claro, solo conveniente
  6. }else{
  7.     //Si esta página solo sirve para procesar el formulario puedes imprimir un error o redirigir a algún sitio
  8. }

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
  #9 (permalink)  
Antiguo 29/05/2015, 15:48
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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">&nbsp;</td>
        <td><input type="submit" value="Insertar registro" name ="submit"/></td>
      </tr>
    </table>
   
  </form>
  <p>&nbsp;</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> 
  #10 (permalink)  
Antiguo 29/05/2015, 16:02
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
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
  1. <?php
  2. require_once('Connections/local.php');
  3.  
  4. if(isset($_POST){ //Si te da problemas prueba: if(isset($_POST['submit']){
  5.     $tipo =$_POST['tipo'];
  6.     $documento =$_POST['estudianteId'];
  7.     $nombre =$_POST['estudianteNombre'];
  8.     $correo =$_POST['estudianteCorreo'];
  9.     $contrasena =$_POST['estudianteClave'];
  10.  
  11.     if ($tipo==1)
  12.     {
  13.     $insertar="insert into estudiantes(estudianteId, estudianteNombre, estudianteCorreo, estudianteClave') values ('$documento','$nombre','$correo','$contrasena')";
  14.     if (mysql_query($insertar)){
  15.         //REDIRIGIR OK
  16.             header('Location: '.$newURL);
  17.         }
  18.     else {
  19.         $error = "Fallo en el registro";
  20.     }
  21. }
  22.     else if($tipo==0){
  23.     $insertar="insert into docentes(docenteId, docenteNombre, docenteCorreo, docenteClave') values ('$documento','$nombre','$correo','$contrasena')";
  24.     if (mysql_query($insertar)){
  25.         //REDIRIGIR OK
  26.             header('Location: '.$newURL);
  27.         }
  28.     else {
  29.         $error = "Fallo en el registro";
  30.     }
  31. }
  32. ?>
  33. ...
  34. TODO EL CONTENIDO DE LA PÁGINA
  35. ...
  36. <!--Lugar donde mostrar el error--> <?php if(isset($error)) echo $error; ?>
  37. ...

Por cierto, esto:
Código PHP:
Ver original
  1. Eres: Estudiante: <input name="tipo" type="radio" value="1" method="post" />
  2. Docente:<input name="tipo" type="radio" value="0" method="post"/>
Debe estar dentro del formulario. A ver que tal.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #11 (permalink)  
Antiguo 30/05/2015, 09:22
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
Respuesta: Insertar registro a dos tablas según la eleccion

donde estas cerrando el if inicial? el que agregaste?
  #12 (permalink)  
Antiguo 30/05/2015, 09:58
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Insertar registro a dos tablas según la eleccion

Faltaba un parentesis en el if y una llave:
Código PHP:
Ver original
  1. <?php
  2. require_once('Connections/local.php');
  3.  
  4. if(isset($_POST)){ //Si te da problemas prueba: if(isset($_POST['submit']){
  5.     $tipo =$_POST['tipo'];
  6.     $documento =$_POST['estudianteId'];
  7.     $nombre =$_POST['estudianteNombre'];
  8.     $correo =$_POST['estudianteCorreo'];
  9.     $contrasena =$_POST['estudianteClave'];
  10.  
  11.     if ($tipo==1)
  12.     {
  13.         $insertar="insert into estudiantes(estudianteId, estudianteNombre, estudianteCorreo, estudianteClave') values ('$documento','$nombre','$correo','$contrasena')";
  14.         if (mysql_query($insertar)){
  15.             //REDIRIGIR OK
  16.             header('Location: '.$newURL);
  17.         }
  18.         else {
  19.         $error = "Fallo en el registro";
  20.         }
  21.     }
  22.     else if($tipo==0){
  23.         $insertar="insert into docentes(docenteId, docenteNombre, docenteCorreo, docenteClave') values ('$documento','$nombre','$correo','$contrasena')";
  24.         if (mysql_query($insertar)){
  25.             //REDIRIGIR OK
  26.             header('Location: '.$newURL);
  27.         }
  28.         else {
  29.             $error = "Fallo en el registro";
  30.         }
  31.     }
  32. }
  33. ?>
  34. ...
  35. TODO EL CONTENIDO DE LA PÁGINA
  36. ...
  37. <!--Lugar donde mostrar el error--> <?php if(isset($error)) echo $error; ?>
  38. ...

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
  1. <input ... value="<?php if(isset($campoX)) echo $campoX; ?>" placeholder="Introduzca campo X">
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #13 (permalink)  
Antiguo 30/05/2015, 10:09
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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">&nbsp;</td>
        <td><input type="submit" value="Insertar registro" name ="submit"/></td>
      </tr>
    </table>
   
  </form>
  <p>&nbsp;</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> 
  #14 (permalink)  
Antiguo 30/05/2015, 10:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
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)
  #15 (permalink)  
Antiguo 30/05/2015, 10:44
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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.
  #16 (permalink)  
Antiguo 30/05/2015, 11:11
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
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
  #17 (permalink)  
Antiguo 01/06/2015, 12:57
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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?
  #18 (permalink)  
Antiguo 01/06/2015, 13:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
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)
  #19 (permalink)  
Antiguo 01/06/2015, 13:13
 
Fecha de Ingreso: mayo-2015
Mensajes: 53
Antigüedad: 9 años
Puntos: 0
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:
<?php require_once('Connections/local.php'); ?>
<?php
//initialize the session
if (!isset($_SESSION)) {
  
session_start();
}

// ** Logout the current user. **
$logoutAction $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset(
$_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  
$logoutAction .="&"htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  
//to fully log out a visitor we need to clear the session varialbles
  
$_SESSION['MM_Username'] = NULL;
  
$_SESSION['MM_UserGroup'] = NULL;
  
$_SESSION['PrevUrl'] = NULL;
  unset(
$_SESSION['MM_Username']);
  unset(
$_SESSION['MM_UserGroup']);
  unset(
$_SESSION['PrevUrl']);
    
  
$logoutGoTo "registro.php";
  if (
$logoutGoTo) {
    
header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$colname_Recordset1 "-1";
if (isset(
$_SESSION['MM_Username'])) {
  
$colname_Recordset1 $_SESSION['MM_Username'];
}
mysql_select_db($database_local$local);
$query_Recordset1 sprintf("SELECT * FROM estudiantes WHERE estudianteId = %s"GetSQLValueString($colname_Recordset1"int"));
$Recordset1 mysql_query($query_Recordset1$local) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);

$colname_Recordset2 "-1";
if (isset(
$_SESSION['MM_username'])) {
  
$colname_Recordset2 $_SESSION['MM_username'];
}
mysql_select_db($database_local$local);
$query_Recordset2 sprintf("SELECT * FROM docentes WHERE docenteId = %s"GetSQLValueString($colname_Recordset2"int"));
$Recordset2 mysql_query($query_Recordset2$local) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);

$colname_usuario "-1";
if (isset(
$_SESSION['MM_Username'])) {
  
$colname_usuario $_SESSION['MM_Username'];
}
mysql_select_db($database_local$local);
$query_usuario sprintf("SELECT * FROM usuarios WHERE usuarioId = %s"GetSQLValueString($colname_usuario"int"));
$usuario mysql_query($query_usuario$local) or die(mysql_error());
$row_usuario mysql_fetch_assoc($usuario);
$totalRows_usuario mysql_num_rows($usuario);
?>
<div class="iniciosesion"<table width="373" border="0">
  <tr>
    <td width="363" height="34">Usuario:
        <input name="textfield" type="text" id="textfield" value="<?php echo $row_usuario['usuarioNombre']; ?>">
  <a href="<?php echo $logoutAction ?>">Cerrar sesion</a></tr>
</table></div>
<?php
  #20 (permalink)  
Antiguo 01/06/2015, 14:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
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)
  #21 (permalink)  
Antiguo 01/06/2015, 14:22
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
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: eleccion, formulario, registro, según, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:52.