Foros del Web » Programando para Internet » PHP »

insertar un dato a dos tablas mysql php

Estas en el tema de insertar un dato a dos tablas mysql php en el foro de PHP en Foros del Web. Amigos: antes de hacer mi consulta quiero agradecer a todos los que responden y nos dan un minuto de tiempo en resolver nuestros problemas. la ...
  #1 (permalink)  
Antiguo 24/11/2011, 10:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
insertar un dato a dos tablas mysql php

Amigos:

antes de hacer mi consulta quiero agradecer a todos los que responden y nos dan un minuto de tiempo en resolver nuestros problemas.

la consulta es la siguiente:

como puedo hacer para poder ingresar un dato de un formulario a dos tablas al mismo tiempo al hacer clic en el boton del formulario??

Tengo una BD llamada PERSONAL dentro de esta tengo dos tablas REGISTRADOS y REGISTRADOS_U; estas tablas tienen dato en comun que se llama "RUTREG" que para la tabla REGISTRADOS vendria siendo la clave primaria y para la tabla REGISTRADOS_U la clave foranea.

Tengo un formulario donde se ingresan datos para la tabla REGISTRADOS pero a la vez necesito que al ingresar uno de esos datos se inserte de manera simultanea el dato "RUTREG" en la tabla REGISTRADOS y en la tabla REGISTRADOS_U

si alguien me pudiera ayudar se lo agradeceria inmensamente

aca les dejo el codigo
Código HTML:
Ver original
  1. <form name=form1 method=post action=ingre_cuenta.php>
  2. <center>    <table border="0">
  3.  
  4. <tr>
  5. <td><strong>Rut</strong></td>
  6. <td><input type='text' name=rut_cuenta id='rut_cuenta' size='35' ></td>
  7. </tr>
  8.  
  9. <tr>
  10. <td><strong>Nombres</strong></td>
  11. <td><input type=text name=nombres_cuenta size=35></td>
  12. </tr>
  13.    
  14. <tr>
  15. <td><strong>Apellido Paterno</strong></td>
  16. <td><input type=text name=appat_cuenta size=35></td>
  17. </tr>
  18. <tr>
  19. <td><strong>Apellido Materno</strong></td>
  20. <td><input type=text name=apmat_cuenta size=35></td>
  21. </tr>
  22. <tr>
  23. <td><strong>Correo Electrónico</strong></td>
  24. <td><input type=text name=mail_cuenta size=35></td>
  25. </tr>
  26.    
  27. <tr>
  28. <td><strong>Contraseña</strong></td>
  29. <td><input type=password name=clave_cuenta size=35></td>
  30.  
  31. </tr>
  32.  
  33. <td><input type='hidden' name='usuario' id='usuario' ></td>
  34. <td><input type='hidden' name='usuario' id='usuario' value='admin'></td>
  35. <td><input type='hidden' name='pass_u' id='pass_u' value=''></td>
  36.    
  37.     </table>
  38.     </center>
  39. <center><input type=submit name=ingre value=Ingresar> <input type="reset" name="Resetear" value="Borrar"></center>
  40.    
  41.     </form>

como se habran podido dar cuenta tengo los ultimos tres input como type=hidden ya que necesito que el usuario solo vea que ingresa los datos de nuevo usuario y que a su vez automaticamente de manera hidden le ingrese el rut (mismo del comienzo del formulario)nombre de usuario definido como Admin y una password vacia

he buscado la manera de hacer esto pero no he podido resolverlo... espero haber sido clara y alguien me pueda ayudar :)
  #2 (permalink)  
Antiguo 24/11/2011, 10:56
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: insertar un dato a dos tablas mysql php

luego de insertar en la primera tabla usas

$ultimo_id = mysql_insert_id();

esto te devuelve el ultimo id insertado

luego con ese id ya tienes la clave primaria para la siguiente consulta
__________________
la la la
  #3 (permalink)  
Antiguo 24/11/2011, 11:10
 
Fecha de Ingreso: noviembre-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: insertar un dato a dos tablas mysql php

una consulta esa funcion mysql_insert_id(); se escribe tal cual debajo del insert??.... tu me podrias enviar algo de codigo para ver y compararlo con el mio por favor???

media desentendida de esto =/
  #4 (permalink)  
Antiguo 24/11/2011, 11:11
 
Fecha de Ingreso: noviembre-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: insertar un dato a dos tablas mysql php

este es el codigo del php que funciona con el action del formulario
Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3.  
  4. $dbi = conectarse();
  5.  
  6. $query="INSERT INTO REGISTRADOS (RUTREG, NOMBRES, APPAT, APMAT, EMAIL, CLAVE) VALUES ('$_POST[rut_cuenta]', '$_POST[nombres_cuenta]', '$_POST[appat_cuenta]', '$_POST[apmat_cuenta]', '$_POST[mail_cuenta]', '$_POST[clave_cuenta]')";
  7. mysql_query($query,$dbi) or die("<center><br><br><br><h4>NO PUDO INGRESAR EL REGISTRO registrados</h4><br><br><br></center>");
  8.  
  9. $query="INSERT INTO REGISTRADOS_U (RUTREG, USUARIO, PASS) VALUES ('$_POST[rut_cuenta]'', '$_POST[usuario]', '$_POST[pass_u]')";
  10. mysql_query($query,$dbi) or die("<center><br><br><br><h4>NO PUDO INGRESAR EL REGISTRO usuarios</h4><br><br><br></center>");
  11.  
  12.  
  13.  
  14. echo "<center><br><br><br><h4>La Inscripción fue realizada satisfactoriamente, para acceder haga clic <a href=\"index.php\">Aquí</a></h4><br><br><br></center><br> ";
  15.  
  16. echo "<center></center>";
  17. ?>
  #5 (permalink)  
Antiguo 24/11/2011, 11:15
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: insertar un dato a dos tablas mysql php

cual es la clave primaria de REGISTRADOS_U ?
__________________
la la la
  #6 (permalink)  
Antiguo 24/11/2011, 11:18
Avatar de afrodriguez70  
Fecha de Ingreso: octubre-2011
Ubicación: Tulua-Colombia
Mensajes: 44
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: insertar un dato a dos tablas mysql php

Estoy deacuerdo con milafa, simple un doble insert y listo, tienes tus dos tablas con el dato................. jeje y listo XD
__________________
Si el hombre no ha descubierto nada por lo que morir, no es digno de vivir. <<Martin Luther King>>
  #7 (permalink)  
Antiguo 24/11/2011, 12:50
 
Fecha de Ingreso: noviembre-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: insertar un dato a dos tablas mysql php

truman_truman la tabla no tenia clave primaria ya lo arregle se llama cod_us la clave primaria de registrados_u
  #8 (permalink)  
Antiguo 24/11/2011, 12:53
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: insertar un dato a dos tablas mysql php

entonces debería ser algo así

Código PHP:
<?php
include ("conexion.php");
 
$dbi conectarse();
 
$query="INSERT INTO REGISTRADOS (RUTREG, NOMBRES, APPAT, APMAT, EMAIL, CLAVE) VALUES ('$_POST[rut_cuenta]', '$_POST[nombres_cuenta]', '$_POST[appat_cuenta]', '$_POST[apmat_cuenta]', '$_POST[mail_cuenta]', '$_POST[clave_cuenta]')";
mysql_query($query,$dbi) or die("<center><br><br><br><h4>NO PUDO INGRESAR EL REGISTRO registrados</h4><br><br><br></center>");
 
 
 
$ultimo_id mysql_insert_id();
 
 
 
$query="INSERT INTO REGISTRADOS_U (cod_us,RUTREG, USUARIO, PASS) VALUES ('$ultimo_id','$_POST[rut_cuenta]'', '$_POST[usuario]', '$_POST[pass_u]')";
mysql_query($query,$dbi) or die("<center><br><br><br><h4>NO PUDO INGRESAR EL REGISTRO usuarios</h4><br><br><br></center>");
 
 
 
echo 
"<center><br><br><br><h4>La Inscripción fue realizada satisfactoriamente, para acceder haga clic <a href=\"index.php\">Aquí</a></h4><br><br><br></center><br> ";
 
echo 
"<center></center>";
?>
__________________
la la la
  #9 (permalink)  
Antiguo 24/11/2011, 13:36
 
Fecha de Ingreso: noviembre-2011
Mensajes: 29
Antigüedad: 13 años
Puntos: 0
Respuesta: insertar un dato a dos tablas mysql php

Segun lo que me indicaste arriba asi quedaria el codigo pero tampoco me resulta =/

aca va el formulario otra ves a ver si me puedes ayudar =)

Código HTML:
Ver original
  1. <form name=form1 method=post action=ingreso_cuenta.php>
  2. <center>    <table border="0">
  3. <tr>
  4. <td><strong>Rut</strong></td>
  5. <td><input type='text' name=rut_cuenta id='rut_cuenta' size='35' ></td>
  6. </tr>
  7.    
  8. <tr>
  9. <td><strong>Nombres</strong></td>
  10. <td><input type=text name=nombres_cuenta size=35></td>
  11. </tr>
  12.    
  13. <tr>
  14. <td><strong>Apellido Paterno</strong></td>
  15. <td><input type=text name=appat_cuenta size=35></td>
  16. </tr>
  17. <tr>
  18. <td><strong>Apellido Materno</strong></td>
  19. <td><input type=text name=apmat_cuenta size=35></td>
  20. </tr>
  21. <tr>
  22. <td><strong>Correo Electrónico</strong></td>
  23. <td><input type=text name=mail_cuenta size=35></td>
  24. </tr>
  25.    
  26. <tr>
  27. <td><strong>Contraseña</strong></td>
  28. <td><input type=password name=clave_cuenta size=35></td>
  29.  
  30. </tr>
  31. <td><input type='hidden' name='cod_us' id='cod_us' value="<?$n_salida;?>"></td>
  32. <td><input type='hidden' name='rut_cuenta_u' id='rut_cuenta_u'></td>   
  33. <td><input type='hidden' name='usuario' id='usuario' value='admin'></td>
  34. <td><input type='hidden' name='pass_u' id='pass_u' value=''></td>
  35.    
  36. </center>
  37. <center><input type=submit name=ingre value=Ingresar> <input type="reset" name="Resetear" value="Borrar"></center>
  38.    
  39. </form>


y este es el archivo php del action del form

Código PHP:
Ver original
  1. <?php
  2. include ("conexion.php");
  3. $dbi = conectarse();
  4.  
  5. $query="INSERT INTO REGISTRADOS (RUTREG, NOMBRES, APPAT, APMAT, EMAIL, CLAVE) VALUES ('$_POST[rut_cuenta]', '$_POST[nombres_cuenta]', '$_POST[appat_cuenta]', '$_POST[apmat_cuenta]', '$_POST[mail_cuenta]', '$_POST[clave_cuenta]')";
  6.  
  7. mysql_query($query,$dbi) or die("NO PUDO INGRESAR EL REGISTRO registrados");
  8.  
  9. $ultimo_id = mysql_insert_id();
  10.  
  11.  
  12.  
  13. $query="INSERT INTO REGISTRADOS_U (COD_US, RUTREG, USUARIO, PASS) VALUES ('$_POST[cod_us]', '$ultimo_id ', '$_POST[usuario]', '$_POST[pass_u]')";
  14. mysql_query($query,$dbi) or die("NO PUDO INGRESAR EL REGISTRO usuarios");
  15. echo La Inscripción fue realizada satisfactoriamente, para acceder haga clic <a href=\"index.php\">Aquí</a";
  16.  
  17. ?>


como me lo explicaste anteriormente imagino que la variable $ultimo_id quedaria en el segundo lugar en los valores del insert del sql ya que estoy tratando de que el cod_us de registrados_u se genere automaticamente autoincrementando pero quiero que en RUTREG de la tabla REGISTRADOS_U se inserte el mismo rut de RUTREG de la tabla REGISTRADOS =/.... ahora asi como lo tengo solo me permite ingresar a la tabla REGISTRADOS a la otra manda el mensaje del or die ("NO PUDO INGRESAR EL REGISTRO usuarios");


quedo atenta a tu respuesta
  #10 (permalink)  
Antiguo 24/11/2011, 16:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: insertar un dato a dos tablas mysql php

Concatenale el error que arroja mysql de la siguiente manera:

Código PHP:
mysql_query($query,$dbi) or die("NO PUDO INGRESAR EL REGISTRO usuarios" mysql_error()); 
Asi podras saber exactamente cual es el problema y por que no lo inserta...

Una duda, tienes un espacio despues de $ultimo_id antes de la comilla?

Etiquetas: dato, formulario, mysql, tabla, tablas, usuarios
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 21:16.