Foros del Web » Programando para Internet » PHP »

Actualizar varios registros de una tabla

Estas en el tema de Actualizar varios registros de una tabla en el foro de PHP en Foros del Web. Mi problema es el siguiente. He creado una tabla para la gestión de objetos perdidos de una estación. Necesito actualizar unos 400 registros de dicha ...
  #1 (permalink)  
Antiguo 12/05/2009, 04:40
 
Fecha de Ingreso: mayo-2009
Mensajes: 8
Antigüedad: 14 años, 11 meses
Puntos: 0
Actualizar varios registros de una tabla

Mi problema es el siguiente. He creado una tabla para la gestión de objetos perdidos de una estación. Necesito actualizar unos 400 registros de dicha tabla, agregando un valor a uno de sus campos que me lo facilita el ayuntamiento. Cada registro tiene que tener un valor en dicho campo. El ayuntamiento me da el primer número. El campo es de tipo int. A ver si me explico mejor, lo que quiero es saber la forma de crear una especie de bucle de actualización que actualice cada uno de los registros que yo seleccione en el campo indicado con un valor que se debe incrementar en 1 para cada registro. Tal vez con el código que tengo y que no se como completar quede más claro:
Código PHP:
<?php 

$conexion 
mysql_connect('localhost''usuario''clave'); 
mysql_select_db('la_base'$conexion); 
mysql_query("SET NAMES 'UTF8'"); 

$hallazgo_inicial642//Este valor me lo da el ayuntamiento 
$num_hallazgo $hallazgo_inicial

$consulta mysql_query("SELECT * FROM objetos_perdidos WHERE (fecha_registro>=\"2009-03-01\" AND fecha_registro<=\"2009-03-31\") AND arrojo=\"NO\" AND entregado=\"NO\" AND comisaria=\"NO\" AND (descripcion NOT LIKE \"%billete%\") ORDER BY num_registro");//A PARTIR DE AQUI NO RESPONDO DE MIS ACTOS 

$registros mysql_num_rows($consulta); 

echo 
htmlspecialchars ("$registros registros encontrados."); 
$i=0

for (
$i=1,$i=$registros,$i++){ 

echo 
htmlspecialchars ("$num_hallazgo"); 

$actualiza mysql_query("UPDATE objetos_perdidos SET num_hallazgo=\"$num_hallazgo\" WHERE (fecha_registro>=\"2009-03-01\" AND fecha_registro<=\"2009-03-31\") AND arrojo=\"NO\" AND entregado=\"NO\" AND comisaria=\"NO\" AND (descripcion NOT LIKE \"%billete%\") ");//Se que el UPDATE me actualiza todos los registros seleccionados pero quiero que vaya uno x uno 

$num_hallazgo++;//Este es el campo que debe incrementarse e ir actualizando en los registros seleccionados 



mysql_free_result($consulta); // libera los registros de la tabla 
mysql_free_result($actualiza); // libera los registros de la tabla 

mysql_close($conexion); // cierra la conexion con la base de datos 


?>
  #2 (permalink)  
Antiguo 12/05/2009, 11:29
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
De acuerdo Respuesta: Actualizar varios registros de una tabla

Buenas,

Encontre un error en tu codigo en el FOR pero no se si te soluciona el problema:

Código PHP:
for ($i=1,$i=$registros,$i++){ 

echo 
htmlspecialchars ("$num_hallazgo"); 

$actualiza mysql_query("UPDATE objetos_perdidos SET num_hallazgo=\"$num_hallazgo\" WHERE (fecha_registro>=\"2009-03-01\" AND fecha_registro<=\"2009-03-31\") AND arrojo=\"NO\" AND entregado=\"NO\" AND comisaria=\"NO\" AND (descripcion NOT LIKE \"%billete%\") ");//Se que el UPDATE me actualiza todos los registros seleccionados pero quiero que vaya uno x uno 

$num_hallazgo++;//Este es el campo que debe incrementarse e ir actualizando en los registros seleccionados 


Seria asi:

Código PHP:
for ($i=1,$i<=$registros,$i++){ 

echo 
htmlspecialchars ("$num_hallazgo"); 

$actualiza mysql_query("UPDATE objetos_perdidos SET num_hallazgo=\"$num_hallazgo\" WHERE (fecha_registro>=\"2009-03-01\" AND fecha_registro<=\"2009-03-31\") AND arrojo=\"NO\" AND entregado=\"NO\" AND comisaria=\"NO\" AND (descripcion NOT LIKE \"%billete%\") ");//Se que el UPDATE me actualiza todos los registros seleccionados pero quiero que vaya uno x uno 

$num_hallazgo++;//Este es el campo que debe incrementarse e ir actualizando en los registros seleccionados 


Saludos
  #3 (permalink)  
Antiguo 12/05/2009, 19:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Actualizar varios registros de una tabla

Tema trasladado desde MySQL

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #4 (permalink)  
Antiguo 13/05/2009, 01:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 8
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Actualizar varios registros de una tabla

rodno, gracias por tu interés. La verdad es que el código ni siquiera lo he probado porque se lo que va a pasar. El UPDATE va a actualizar todos los registros seleccionados con el mismo valor cada vez que se ejecute. Lo que no se como hacer es que el UPDATE se ejecute cada vez en un registro y con un nuevo valor en cada uno de ellos.
Por cierto, creo que con la modificación que has hecho el bucle solo se ejecuta una vez.
  #5 (permalink)  
Antiguo 13/05/2009, 08:29
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
De acuerdo Respuesta: Actualizar varios registros de una tabla

Buenas,

Pues no, el bucle si ejecuta varias veces;

Si pero que valor tu quieres actualizar num_hallazgo ?
Te da algun error de Mysql?
Que valores te actualiza?

Se necesita saber que datos se estan insertando de esta forma?

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 08:28.