Foros del Web » Programando para Internet » PHP »

Ejecutar consulta mysql sólo si esta no da error

Estas en el tema de Ejecutar consulta mysql sólo si esta no da error en el foro de PHP en Foros del Web. Estimados tengo dos consultas mysql, las cuales han sido guardadas en dos variables distintas. Código: $entrega=mysql_query("insert into bd_res_ent (id_order,id_emps,ent_fecha,ent_dir,ent_dir_of,ent_dir_com,ent_er_nom,ent_er_ape,ent_er_tel,ent_er_cel) values ('$id_order','$id_emp','$ent_fecha','$ent_dir','$ent_of','$ent_com','$ent_ee_nom','$ent_ee_ape','$ent_ee_tel','$ent_ee_cel')", $conectar_php); y la otra ...
  #1 (permalink)  
Antiguo 15/02/2012, 13:10
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 3 meses
Puntos: 1
Ejecutar consulta mysql sólo si esta no da error

Estimados

tengo dos consultas mysql, las cuales han sido guardadas en dos variables distintas.

Código:
$entrega=mysql_query("insert into bd_res_ent (id_order,id_emps,ent_fecha,ent_dir,ent_dir_of,ent_dir_com,ent_er_nom,ent_er_ape,ent_er_tel,ent_er_cel) 
values ('$id_order','$id_emp','$ent_fecha','$ent_dir','$ent_of','$ent_com','$ent_ee_nom','$ent_ee_ape','$ent_ee_tel','$ent_ee_cel')", $conectar_php);
y la otra

Código:
$retiro=mysql_query("insert into bd_res_ret (id_order,id_emp,ret_fecha,ret_hr,ret_dir,ret_dir_of,ret_dir_com,ret_ee_nom,ret_ee_ap,ret_ee_tel,ret_ee_cel) 
values ('$id_order','$id_emp','$ret_fecha','$ret_hora','$ret_dir','$ret_of','$ret_com','$ret_ee_nom','$ret_ee_ape','$ret_ee_tel','$ret_ee_cel')", $conectar_php);
entonces deseo que ambas se ejecuten sólo cuando ambas arrojen datos.

Código:
if($retiro!==1 && $entrega!==1){
echo "Problemas al tratar de ejecutar su reserva, favor contacte con su ejecutivo";
}
else{
$entrega;
$retiro;
}
el problema es que a pesar de que se produce un error en la entrega de los datos, sigue guardando la consulta que no tiene errores.

alguna idea
  #2 (permalink)  
Antiguo 15/02/2012, 13:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Cita:
Iniciado por i34a23
el problema es que a pesar de que se produce un error en la entrega de los datos, sigue guardando la consulta que no tiene errores.
Podrías ser más específico en el error que mencionas?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/02/2012, 13:21
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 18 años, 4 meses
Puntos: 34
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Puedes cambiar el && por un Or = || ? , en caso de que cualquiera de las 2 arroje error haces un rollback y claro debes manejar transacciones para evitar que se guarden los datos en caos de error.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #4 (permalink)  
Antiguo 15/02/2012, 13:36
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Cita:
Iniciado por bitbow Ver Mensaje
Puedes cambiar el && por un Or = || ? , en caso de que cualquiera de las 2 arroje error haces un rollback y claro debes manejar transacciones para evitar que se guarden los datos en caos de error.
tambien probe cambiando los && por || pero igual se ejecuta la que produce error.

que es eso de manejar transacciones para evitar que guarde los datos en caso de error ????
  #5 (permalink)  
Antiguo 15/02/2012, 13:43
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Yo para ese tipo de casos prefiero usar excepciones...!
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 15/02/2012, 13:50
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Ejecutar consulta mysql sólo si esta no da error

??????????????????????????

sorry soy muy novato en el uso de BD y creo que me estan hablando de cosas que no manejo :(
  #7 (permalink)  
Antiguo 15/02/2012, 13:55
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Cita:
Iniciado por Triby Ver Mensaje
Podrías ser más específico en el error que mencionas?
el error lo generé yo a la fuerza, lo que hice fue modificar un campo para que no se encontrará al momento de hacer la consulta y arrojase un error.

pero el error más recurrente que se me ha generado sin modificar nada es el siguiente:

el formulario guarda información en 2 tablas distintas, las cuales se relacionan mediante un ID en ambas, el ID se genera al momento de envíar el formulario, el problema que al ejecutarse solo 1 consulta de las dos... me genera el ID y al intentar volver a llenar el formulario me arroja un error de duplicidad de la ID.

saludos
  #8 (permalink)  
Antiguo 15/02/2012, 15:24
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 18 años, 4 meses
Puntos: 34
Respuesta: Ejecutar consulta mysql sólo si esta no da error

Cita:
Iniciado por i34a23 Ver Mensaje
tambien probe cambiando los && por || pero igual se ejecuta la que produce error.

que es eso de manejar transacciones para evitar que guarde los datos en caso de error ????

Esto solo te ayudaria a ver que hubo un error, realmente al momento de llamar la consulta realizas la insercion.

Operacion01; = OK

Operacion02; = Error

En este esquema ya se ejecuto el primer query, si lo que requieres es que en caso de error en alguna de las 2 se deshaga la insercion de datos es necesario que manejes transacciones y no son algo avanzado simplemente son algo necesario en algunos casos.

Como consejo: No puedes apegarte a la mentalidad de no lo se o no lo manejo cuando estas desarrollando una aplicacion, si ese fuera el caso tu aplicación no funciona y no es viable realizarla, el conocimiento para resolver los problemas surge en muchas ocasiones de la necesidad de resolver estos.

Saludos y suerte.
__________________
El ego es el mayor enemigo de un hombre inteligente.

Etiquetas: mysql, sql, variables
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 13:05.