Foros del Web » Programando para Internet » PHP »

PHP Mysql

Estas en el tema de PHP Mysql en el foro de PHP en Foros del Web. Hola a tod@s tengo una duda se puede realizar en una misma consulta dos querys??? mas o menos como lo siguiente: Primero altero una tabla ...
  #1 (permalink)  
Antiguo 07/03/2011, 08:18
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
PHP Mysql

Hola a tod@s tengo una duda se puede realizar en una misma consulta dos querys??? mas o menos como lo siguiente:

Primero altero una tabla A y guardo en una tabla B.

Algo asi como: alter A(valor1) y insert into B(valor1 , valor2) en una misma query se puede??? o tendria que divirla en dos???

Tomando en cuenta que los valores (valor 1 y valor 2) vienen de un formulario enviados por metodo post.
  #2 (permalink)  
Antiguo 07/03/2011, 08:25
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: PHP Mysql

Podrias hacer dos querys seguidos

$modificar = "UPDATE tabla SET...";
$ejecutar = mysql_query($modificar, $conexion);
$insertar = "INSERT INTO tabla2 ....";
$ejecutar = mysql_query($insertarr, $conexion);
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 07/03/2011, 08:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: PHP Mysql

El manual te lo indica claramente http://www.php.net/manual/en/function.mysql-query.php
Cita:
Iniciado por http://www.php.net/manual/en/function.mysql-query.php
mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 07/03/2011, 08:43
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Cita:
Iniciado por abimaelrc Ver Mensaje
Hola muchas gracias por tu tiempo, entonces podria solucionarlo primero llamando a una primera pagina php en donde realizo mi primer query; y despues de hacerlo direccionar esa pagina a otra php con la otra consulta todo esto llevando mis variables pos POST.... O podria utilizar como me lo indica jotaincubus.

De nuevo, Muchas Gracias por tu tiempo.
  #5 (permalink)  
Antiguo 07/03/2011, 08:44
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Cita:
Iniciado por jotaincubus Ver Mensaje
Podrias hacer dos querys seguidos

$modificar = "UPDATE tabla SET...";
$ejecutar = mysql_query($modificar, $conexion);
$insertar = "INSERT INTO tabla2 ....";
$ejecutar = mysql_query($insertarr, $conexion);
Gracias amigo lo intentare y te digo si me funciono :D.
  #6 (permalink)  
Antiguo 07/03/2011, 08:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: PHP Mysql

Cita:
Iniciado por hiramhzr Ver Mensaje
Hola muchas gracias por tu tiempo, entonces podria solucionarlo primero llamando a una primera pagina php en donde realizo mi primer query; y despues de hacerlo direccionar esa pagina a otra php con la otra consulta todo esto llevando mis variables pos POST.... O podria utilizar como me lo indica jotaincubus.

De nuevo, Muchas Gracias por tu tiempo.
No, a lo que me refiero es que en el mismo mysql_query no puedes hacer dos consultas, puedes colocar multiples mysql_query.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 07/03/2011, 08:58
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Cita:
Iniciado por abimaelrc Ver Mensaje
No, a lo que me refiero es que en el mismo mysql_query no puedes hacer dos consultas, puedes colocar multiples mysql_query.
Ok muchas gracias, despues comento si lo solucione. Que tenga un buen dia. Saludos
  #8 (permalink)  
Antiguo 08/03/2011, 10:31
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

hola de nuevo a todos, la verdad es que no me salio como lo estaba pensando necesito hacer lo siguiente:

Necesito Actualizar un campo fecha(date) con el campo de una fecha que envio por POST, lo cual ya logro hacer e insertarlo en una tabla task.

Despues con ese mismo campo fecha necesito guardarlo en otra tabla que almacena mi antiguo valor de fecha y el nuevo tambien un id de departamento que tengo como variable global con session, para mas entendimiento pongo el codigo completo de como estoy guardando los datos.
Código PHP:
Ver original
  1. <?php
  2. session_start();    
  3. if(!isset($_SESSION[level]) == 2)header("location: index.php");
  4. $_SESSION[nomDepartamento] == $nomDepartamento;    
  5. include('conexion.php');
  6. //variables POST
  7. $idemp=$_POST['idTarea'];
  8. $motivo=$_POST['motivo'];
  9. $fechaCo=$_POST['fechCom'];
  10. //actualiza los datos y guarda
  11. $sql="UPDATE task SET fechaCompromiso='$fechaCo' WHERE id=$idemp";
  12. $sql2="INSERT INTO historicoCambioFecha VALUES ('null','$idemp','$fechaCo',$fechaCo','$motivo','$nomDepartamento')";
  13.  
  14. echo "$idemp";
  15. echo "$fechco";
  16. echo "$motivo";
  17. echo "$nomDepartamento";
  18.  
  19. mysql_query($sql2);
  20.  
  21. include('consultaFecha.php');
  22. ?>

Cabe mencionar que solo me actualiza la fecha en mi tabla task pero no me guarda nada en mi tabla historicoCambioFecha.

Espero me uedan orientar en donde esta mi error.
  #9 (permalink)  
Antiguo 08/03/2011, 10:49
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: PHP Mysql

Bueno primero que todo para un INSERT debes colocar los campos asi

INSERT INTO tabla (campo1, campo2, campo3) VALUES ('$campo1', '$campo2', '$campo3');

Segundo si quieres guardar en otra tabla la fecha que tiene antes de hacer el UPDATE debes hacer un SELECT de esa fecha e insertarla en la otra tabla y despues hacer el UPDATE

Espero ser claro, y que te sirva la info que te brindo.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 08/03/2011, 11:08
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Cita:
Iniciado por jotaincubus Ver Mensaje
Bueno primero que todo para un INSERT debes colocar los campos asi

INSERT INTO tabla (campo1, campo2, campo3) VALUES ('$campo1', '$campo2', '$campo3');

Segundo si quieres guardar en otra tabla la fecha que tiene antes de hacer el UPDATE debes hacer un SELECT de esa fecha e insertarla en la otra tabla y despues hacer el UPDATE

Espero ser claro, y que te sirva la info que te brindo.
Muchas gracias por tu respuesta de hecho tienes razon es logico que primero guarde la fecha y despues la cambie (Y)

Realizo un echo para ver que variables son las que tengo y solo me muestra la variable motivo y el id de la tarea y todo lo de mas no, tomando en cuenta que departamento la tengo desde que inicio sesiion esta bien asiganada la variable en la parte de arriba??
Código PHP:
Ver original
  1. <?php
  2. session_start();    
  3. if(!isset($_SESSION[level]) == 2)header("location: index.php");
  4. $_SESSION[nomDepartamento] == $nomDepartamento;    
  5. include('conexion.php');
  6. //variables POST
  7. $idemp=$_POST['idTarea'];
  8. $motivo=$_POST['motivo'];
  9. $fechaCo=$_POST['fechCom'];
  10.  
  11.  
  12. echo "$nomDepartamento";
  13. echo "$idemp";
  14. echo "$fechco";
  15. echo "$motivo";
  16.  
  17. $sql2="INSERT INTO historicoCambioFecha(id,relacion,nuevaFecha,antiguaFecha,motivo,departamento) VALUES ('null','$idemp','$fechaCo',$fechaCo','$motivo','$nomDepartamento')";
  18. mysql_query($sql2);
  19. $sql="UPDATE task SET fechaCompromiso='$fechaCo' WHERE id=$idemp";
  20.  
  21. include('consultaFecha.php');
  22. ?>
  #11 (permalink)  
Antiguo 08/03/2011, 11:27
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Hola ya consegui recibir todas mis variables excepto el nomDepartamento, como comento cuando se loguea mi usuario capturio su nomDepartamento de la siguiente manera:
Código PHP:
Ver original
  1. session_register("nomDepartamento");
  2. $_SESSION[nomDepartamento] = $user_ok["nomDepartamento"];

Ahora bien como recupero esa variable desde mi archivo de actualización??

de momento lo tengo así
Código PHP:
Ver original
  1. $_SESSION[nomDepartamento] == $nomDepartamento;

Y lo paso al query así:
Código PHP:
Ver original
  1. $sql2="INSERT INTO historicoCambioFecha(id,relacion,nuevaFecha,antiguaFecha,motivo,departamento) VALUES ('null','$idemp','$fechaCo',$fechaCo','$motivo','$nomDepartamento')";

Espero me puedan orientar Muchas gracias
  #12 (permalink)  
Antiguo 08/03/2011, 11:45
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Actualizo ya puedo utilizar el nomDepartamento, ya logro mostrarlo con el echo; Me salen ya todos los datos que necesito para el query pero no me inserta nada en mi tabla que puedo tener mal:
Código PHP:
Ver original
  1. $sqldos="INSERT INTO historicoCambioFecha VALUES ('null','$idemp','$fechaCo',$fechaCo','$motivo','$nomDepartamento')";
  2. mysql_query($sqldos);
  #13 (permalink)  
Antiguo 08/03/2011, 12:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: PHP Mysql

no te inserta por lo mismo que coloque arriba... los insert son asi

INSERT INTO tabla (campo1, campo2, campo3) VALUES ('$campo1', '$campo2', '$campo3');

a ti te falta definir los campos de la tabla fijate y veras la diferencia
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #14 (permalink)  
Antiguo 08/03/2011, 12:17
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: PHP Mysql

Cita:
Iniciado por jotaincubus Ver Mensaje
no te inserta por lo mismo que coloque arriba... los insert son asi

INSERT INTO tabla (campo1, campo2, campo3) VALUES ('$campo1', '$campo2', '$campo3');

a ti te falta definir los campos de la tabla fijate y veras la diferencia
No necesariamente, si esta insertando valores para todos los campos y en el orden en que estan en la tabla no es necesario indicar los nombres.

Como sea, imprime tu consulta para ver si se esta construyendo bien y/o usa mysql_error() para depurarla
  #15 (permalink)  
Antiguo 08/03/2011, 12:31
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Cita:
Iniciado por darkasecas Ver Mensaje
No necesariamente, si esta insertando valores para todos los campos y en el orden en que estan en la tabla no es necesario indicar los nombres.

Como sea, imprime tu consulta para ver si se esta construyendo bien y/o usa mysql_error() para depurarla
Muchas gracias a los dos hice las modificaciones (aunque como menciona darkasecas tengo todos los campos en orden aun asi lo hice), miren puse mysql_error($sql); y mysql_errno($sql); no me devuelven error o los estoy empleando mal??.

Esto es raro ya que manualmente si inserto los datos a mi tabla, pero con el formulario de actualizacion no. Ahora tengo mi query asi.... pero no veo errores.

Código PHP:
Ver original
  1. $sql="INSERT INTO historicoCambioFecha (id, relacion, nuevaFecha, antiguaFecha, motivo, departamentoId) VALUES ('null','$idemp','$fechaCo',$fechaCo','$motivo','$nomDepartamento')";

Muchisimas gracias por su tiempo.
  #16 (permalink)  
Antiguo 08/03/2011, 16:13
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: PHP Mysql

Hola :D no me gusta dejar abierto mis post y siempre me gusta llegar a una solucion asi que continuando con lo mismo:

Ya descubri por que no me almacenaba nada esto se debia a que estaba queriendo almacenar la misma fecha en dos campos diferentes y por la misma estructura de la tabla no me permitia hacerlo.

Asi que solucione lo anterior eliminando una de los dos campos fecha, ahora proseguire a resolver mi principal problema que era guardar datos en dos tablas diferentes, en cuanto tenga la solucion la escribire por si algun dia hay alguien que le sirva. Saludos.
  #17 (permalink)  
Antiguo 09/03/2011, 08:02
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
[SOLUCIONADO]: PHP Mysql

[SOLUCIONADO] Hola primero que nada gracias a las personas que me orientaron en la solución de mi problema, me eh fijado siempre solucionar los temas que inicio , pues bien ya logre hacer dos querys en un mismo archivo php que era lo que inicialmente necesitaba, en el camino surgieron varios problemas con el manejo de variables pero ya lo solcuione tambien, nuevamente muchas gracias.

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 19:53.