Foros del Web » Programando para Internet » PHP »

Actualizar tablas con un ciclo

Estas en el tema de Actualizar tablas con un ciclo en el foro de PHP en Foros del Web. Buenos días a todos, quiero preguntarles si se pueden actualizar tablas mediante el ciclo "for...", la cuestión es que tengo la siguiente instrucción: for($i=1;$i<19;$i++){ $as=$as['$i']; ...
  #1 (permalink)  
Antiguo 06/02/2008, 12:07
Avatar de joshua_007  
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Actualizar tablas con un ciclo

Buenos días a todos, quiero preguntarles si se pueden actualizar tablas mediante el ciclo "for...", la cuestión es que tengo la siguiente instrucción:

for($i=1;$i<19;$i++){
$as=$as['$i']; echo $as['$i'];
$at=$at['$i']; echo $at['$i'];
$semana=$semana['$i']; echo $semana['$i'];
$q1= "UPDATE geomatica SET $as, $at, $semana, $resp, $fecha, $hora, WHERE id_geom='$i'";
mysql_db_query($BD,$q1) or die("No se pudo actualizar el registro de actividades en la base de datos.");
}

al momento de ejecutar la instrucción me dice que no lo puede hacer, los valores los traigo de un formulario y los agrego a arreglos matriciales, gracias.
  #2 (permalink)  
Antiguo 06/02/2008, 14:52
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Re: Actualizar tablas con un ciclo

que error te tira, teóricamente si se puede hacer un bucle y grabar datos, yo lo uso por eso one que error te tira para identificar el error.

salu2
  #3 (permalink)  
Antiguo 06/02/2008, 15:27
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Actualizar tablas con un ciclo

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 06/02/2008, 15:39
 
Fecha de Ingreso: agosto-2006
Mensajes: 50
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Actualizar tablas con un ciclo

hola

$q1= "UPDATE geomatica SET $as,..... <- que viene en $as??

algo parecido a x=y, o simplemete un valor??

si es simplemente un valor, ahi esta el error, porque la sentencia es set x=y, a=b, etc...

saludos
  #5 (permalink)  
Antiguo 07/02/2008, 08:35
Avatar de joshua_007  
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Re: Actualizar tablas con un ciclo

Gracias por la respuesta, me falto ese dato efectívamente; bueno ampliando más, el mensaje que me manda es que no se logro actualizar el registro de la base de datos; no actualiza como lo pido, este es el código que estoy utilizando:

$sSQL1="SELECT * FROM geomatica";
$result1=mysql_db_query($BD,$sSQL1);
$at1=$result1[$at[1]]; $at1 += $as1; $avs[1]=$as1; $avt[1]=$at1; $sem[1]=$semana1;
$at2=$result1[$at[2]]; $at2 += $as2; $avs[2]=$as2; $avt[2]=$at2; $sem[2]=$semana2;
$at3=$result1[$at[3]]; $at3 += $as3; $avs[3]=$as3; $avt[3]=$at3; $sem[3]=$semana3;
$at4=$result1[$at[4]]; $at4 += $as4; $avs[4]=$as4; $avt[4]=$at4; $sem[4]=$semana4;
$at5=$result1[$at[5]]; $at5 += $as5; $avs[5]=$as5; $avt[5]=$at5; $sem[5]=$semana5;
$at6=$result1[$at[6]]; $at6 += $as6; $avs[6]=$as6; $avt[6]=$at6; $sem[6]=$semana6;
$at7=$result1[$at[7]]; $at7 += $as7; $avs[7]=$as7; $avt[7]=$at7; $sem[7]=$semana7;
$at8=$result1[$at[8]]; $at8 += $as8; $avs[8]=$as8; $avt[8]=$at8; $sem[8]=$semana8;
$at9=$result1[$at[9]]; $at9 += $as9; $avs[9]=$as9; $avt[9]=$at9; $sem[9]=$semana9;
$at10=$result1[$at[10]]; $at10 += $as10; $avs[10]=$as10; $avt[10]=$at10; $sem[10]=$semana10;
$at11=$result1[$at[11]]; $at11 += $as11; $avs[11]=$as11; $avt[11]=$at11; $sem[11]=$semana11;
$at12=$result1[$at[12]]; $at12 += $as12; $avs[12]=$as12; $avt[12]=$at12; $sem[12]=$semana12;
$at13=$result1[$at[13]]; $at13 += $as13; $avs[13]=$as13; $avt[13]=$at13; $sem[13]=$semana13;
$at14=$result1[$at[14]]; $at14 += $as14; $avs[14]=$as14; $avt[14]=$at14; $sem[14]=$semana14;
$at15=$result1[$at[15]]; $at15 += $as15; $avs[15]=$as15; $avt[15]=$at15; $sem[15]=$semana15;
$at16=$result1[$at[16]]; $at16 += $as16; $avs[16]=$as16; $avt[16]=$at16; $sem[16]=$semana16;
$at17=$result1[$at[17]]; $at17 += $as17; $avs[17]=$as17; $avt[17]=$at17; $sem[17]=$semana17;
$at18=$result1[$at[18]]; $at18 += $as18; $avs[18]=$as18; $avt[18]=$at18; $sem[18]=$semana18;
print_r ($avs); print_r ($avt); print_r ($sem);
$as='0'; $at='0'; $semana='0';
for($i=1; $i<19; $i++){
echo "entro a ciclo", $i, $avs[$i];
$as=$avs[$i]; echo $as;
$at=$avt[$i]; echo $at;
$semana=$sem[$i]; echo $semana;
$q1= "UPDATE geomatica SET fecha='$fecha', hora='$hora', resp='$resp', at='$at', as='$as, semana='$semana' WHERE id_geom='$i' LIMIT 1";
mysql_db_query($BD,$q1) or die("No se pudo actualizar el registro de actividades en la base de datos.");
}

Realizo la consulta para traer los valores anteriores de una variable, ya que se requieren actualizar con los incrementos por semana; posteriormente realizo las operaciones correspondientes, y dentro del ciclo quiero actualizar la tabla, pero me marca el error "No se pudo actualizar el registro de actividades en la base de datos." ya revisé si estan bien las asignaciones, pero no me deja actualizar, espero me puedan ayudar, muchas gracias.
  #6 (permalink)  
Antiguo 07/02/2008, 08:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Actualizar tablas con un ciclo

Prueba hacerlo asi:
Código PHP:
mysql_db_query($BD,$q1) or die("No se pudo actualizar el registro de actividades en la base de datos, query: $q1, error: " mysql_error()); 
y toma nota del error que te marca.

Saludos.
  #7 (permalink)  
Antiguo 07/02/2008, 18:31
Avatar de joshua_007  
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Actualizar tablas con un ciclo

Gracias, me sirvio de mucho, el error que manda es el siguiente:

"No se pudo actualizar el registro de actividades en la base de datos, query: UPDATE geomatica SET fecha=--, hora=, resp=, at=1, as=1, semana=1 WHERE id_geom='1' LIMIT 1, error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' hora=, resp=, at=1, as=1, semana=1 WHERE id_geom='1' LIMIT 1' at line 1"

Al parecer la asignación de variables es el problema, ya que no tienen ningún valor, qué recomendación pueden darme?..

Saludos!

Cita:
Iniciado por GatorV Ver Mensaje
Prueba hacerlo asi:
Código PHP:
mysql_db_query($BD,$q1) or die("No se pudo actualizar el registro de actividades en la base de datos, query: $q1, error: " mysql_error()); 
y toma nota del error que te marca.

Saludos.
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 23:04.