Foros del Web » Programando para Internet » PHP »

Como hacer doble insert into

Estas en el tema de Como hacer doble insert into en el foro de PHP en Foros del Web. Hola. Haber si me podeis ayudar. Quiero ingresar los mismo campos de datos en dos tablas diferentes con php y mysql con un mismo formulario. ...
  #1 (permalink)  
Antiguo 07/10/2013, 17:22
 
Fecha de Ingreso: septiembre-2013
Mensajes: 6
Antigüedad: 10 años, 7 meses
Puntos: 0
Como hacer doble insert into

Hola. Haber si me podeis ayudar. Quiero ingresar los mismo campos de datos en dos tablas diferentes con php y mysql con un mismo formulario. He probado de muchas maneras pero al final siempre me ingresa en una y en la otra no. Gracias de antemano.

El codigo es este:

$query="INSERT INTO productos (nombre,descripcion,precio,cuanto_hay)

values(
'".$nombre."',
'".$desc."',
'".$precio."',
'".$enStock."')";

$query="INSERT INTO ofertas (nombre,descripcion,precio,cuanto_hay)

values(
'".$nombre."',
'".$desc."',
'".$precio."',
'".$enStock."')";



if (mysql_query($query)){
echo 'Inserci&oacuten con exito ';



}else{
echo 'No se puedo insertar ';
}
  #2 (permalink)  
Antiguo 07/10/2013, 18:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer doble insert into

Por favor muestra el código completo que utilizas para hacer las dos inserciones, de otra forma adivinar lo que haces mal es imposible.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/10/2013, 18:05
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Como hacer doble insert into

Primero qeu nada, usa el hightlight, segundo, es obvio lo que preguntas, examinemos tu codigo.


Código PHP:
Ver original
  1. $query="INSERT INTO productos (nombre,descripcion,precio,cuanto_hay)
  2.  
  3. values(
  4. '".$nombre."',
  5. '".$desc."',
  6. '".$precio."',
  7. '".$enStock."')";/////aqui creamos la variable query, genial, hasta aqui vamos bien
  8.  
  9. $query="INSERT INTO ofertas (nombre,descripcion,precio,cuanto_hay)
  10.  
  11. values(
  12. '".$nombre."',
  13. '".$desc."',
  14. '".$precio."',
  15. '".$enStock."')";/////aqui cambiamos la variable que designamos¡¡
  16.  
  17.  
  18.  
  19. if (mysql_query($query)){
  20. echo 'Inserci&oacuten con exito ';
  21.  
  22.  
  23.  
  24. }else{
  25. echo 'No se puedo insertar ';
  26. }
que tal si haces lo siguiente, Variable > query > variable > query usa este codigo, el cambio es minimo si lo ves bien



Código PHP:
Ver original
  1. $query="INSERT INTO productos (nombre,descripcion,precio,cuanto_hay)
  2.  
  3. values(
  4. '".$nombre."',
  5. '".$desc."',
  6. '".$precio."',
  7. '".$enStock."')";
  8.  
  9.  
  10. if (mysql_query($query)){
  11. echo 'Segunda inserci&oacuten con exito ';
  12. }else{
  13. echo 'No se puedo insertar ';
  14. }
  15.  
  16. $query="INSERT INTO ofertas (nombre,descripcion,precio,cuanto_hay)
  17.  
  18. values(
  19. '".$nombre."',
  20. '".$desc."',
  21. '".$precio."',
  22. '".$enStock."')";
  23.  
  24.  
  25.  
  26. if (mysql_query($query)){
  27. echo 'Segunda inserci&oacuten con exito ';
  28. }else{
  29. echo 'No se puedo insertar ';
  30. }

o simplemente creas dos variables distintas


Código PHP:
Ver original
  1. $query="INSERT INTO productos (nombre,descripcion,precio,cuanto_hay)
  2.  
  3. values(
  4. '".$nombre."',
  5. '".$desc."',
  6. '".$precio."',
  7. '".$enStock."')";
  8.  
  9. $query2="INSERT INTO ofertas (nombre,descripcion,precio,cuanto_hay)
  10.  
  11. values(
  12. '".$nombre."',
  13. '".$desc."',
  14. '".$precio."',
  15. '".$enStock."')";
  16.  
  17.  
  18.  
  19. if (mysql_query($query) AND mysql_query($query2)){
  20. echo 'Inserci&oacuten en ambas tablas con exito ';
  21.  
  22.  
  23.  
  24. }else{
  25. echo 'No se puedo insertar ';
  26. }

pateketrueke, es obvio el error ><
  #4 (permalink)  
Antiguo 07/10/2013, 18:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer doble insert into

Cita:
Iniciado por omarinfinito Ver Mensaje
[...] pateketrueke, es obvio el error ><
¿Cómo qué obvio?

Lo siento, pero yo adivinar no sé.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/10/2013, 10:43
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Como hacer doble insert into

Si utilizas o cambias a mysqli puedes hacer esto:




Código PHP:
Ver original
  1. $link = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");
  2.  
  3.  
  4. $query="INSERT INTO productos (nombre,descripcion,precio,cuanto_hay)
  5.  
  6. values(
  7. '".$nombre."',
  8. '".$desc."',
  9. '".$precio."',
  10. '".$enStock."');";
  11.  
  12. $query .="INSERT INTO ofertas (nombre,descripcion,precio,cuanto_hay)
  13.  
  14. values(
  15. '".$nombre."',
  16. '".$desc."',
  17. '".$precio."',
  18. '".$enStock."')";
  19.  
  20.  
  21. mysqli_multi_query($link,$query)

Te dejo el manual de todas formas para que chequees.
http://php.net/manual/es/mysqli.multi-query.php
  #6 (permalink)  
Antiguo 08/10/2013, 10:53
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, 4 meses
Puntos: 2658
Respuesta: Como hacer doble insert into

Explicación más o menos simple: La librería MYSQL no sopota ejecución de multiqueries en su función. Por eso no puedes usar mysql_query() para esto.
Por su lado, la MYSQLI sí puede hacerlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql
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 03:47.