Foros del Web » Programando para Internet » PHP »

hacer un Update a varias tablas

Estas en el tema de hacer un Update a varias tablas en el foro de PHP en Foros del Web. Hola que tal amigos, me he encontrado con el siguiente problema, la cuestión es que se tienen que hacer un UPDATE a una serie de ...
  #1 (permalink)  
Antiguo 28/11/2012, 10:19
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Pregunta hacer un Update a varias tablas

Hola que tal amigos, me he encontrado con el siguiente problema, la cuestión es que se tienen que hacer un UPDATE a una serie de tablas, pero no logro hacer que funcione.

Lo intente con una array y utilizando la funcion join() para separar los nombres, pero no me funciona, lo hice de esta manera:
Código PHP:
Ver original
  1. $array = array("distribucion","norte","sur","centro");
  2.         $tablas = join(",",$array);
  3.        
  4.         $today = date("w");
  5.        
  6.         if($today == "1"){
  7.             $asistencia = mysql_query("UPDATE $tablas SET L='X' WHERE area='DP090'", $conexion);
  8.         }elseif($today == "2"){
  9.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X' WHERE area='DP090'", $conexion);
  10.         }elseif($today == "3"){
  11.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X', Mi='X' WHERE area='DP090'", $conexion);
  12.         }elseif($today == "4"){
  13.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X', Mi='X', J='X' WHERE area='DP090'", $conexion);
  14.         }elseif($today == "5"){
  15.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X', Mi='X', J='X', V='X' WHERE area='DP090'", $conexion);
  16.         }elseif($today == "6"){
  17.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X', Mi='X', J='X', V='X', S='X' WHERE area='DP090'", $conexion);
  18.         }else{
  19.             $asistencia = mysql_query("UPDATE $tablas SET L='X', M='X', Mi='X', J='X', V='X', S='X', D='X' WHERE area='DP090'", $conexion);
  20.         }

No me manda ningún error, pero tampoco me actualiza los datos en mis tablas.

Alguien le ha ocurrido algo parecido? Gracias!
  #2 (permalink)  
Antiguo 28/11/2012, 10:36
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Respuesta: hacer un Update a varias tablas

Hola:

Ya verificaste el valor de $today?

Código PHP:
echo "-->".$today
Te sugiero hacer uso de mysql_error

Saludos.
  #3 (permalink)  
Antiguo 28/11/2012, 10:44
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: hacer un Update a varias tablas

Ademas de lo que ya te dijeron yo verificaria varias cosas:

1. Verificaria que la consulta sql quedo bien generada. Antes de hacer la query yo haria un echo para mirar si quedo bien formada.
2. Mas que verificar yo cambiaria todos esos if else por un switch case.
3. Lo que ya te comentaron anteriormente porque si la condición no se cumple pues no va a realizar nada.

Yo haria el llamado a los updates con un store procedure o con un prepare execute de php, ya eso depende como te guste.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 28/11/2012, 10:51
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: hacer un Update a varias tablas

Si así es ya lo revise, la variable $today no tiene ningún problema, porque si lo hago de forma manual el query es decir:

Código PHP:
Ver original
  1. $asistencia = mysql_query("UPDATE tabla1, tabla2, tabla3, tabla4 SET L='X' WHERE area='DP090'", $conexion);

La condición se cumple según sea y actualiza inserta los datos correctamente, el problema esta en la forma que defino el array, no se si este bien formado, a la vez si la sentencia UPDATE soporte esto.

Etiquetas: mysql, tabla, tablas, update
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 10:12.