Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

duda al hacer UPDATE

Estas en el tema de duda al hacer UPDATE en el foro de Mysql en Foros del Web. hola he logrado exportar una base de datos que estaba en access a MySql, tengo una tabla que se llama enlace en esta tabla tengo ...
  #1 (permalink)  
Antiguo 30/01/2012, 09:56
 
Fecha de Ingreso: agosto-2011
Ubicación: d.f
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 4
duda al hacer UPDATE

hola he logrado exportar una base de datos que estaba en access a MySql, tengo una tabla que se llama enlace en esta tabla tengo + de 100 registros

ahora en los registros tengo por ejemplo

Código PHP:
doctos/manuales/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-V1.1.pdf 
lo quiero cambiar a:

Código PHP:
manualesProcedimientosmanualesFPO-3-RM1-14022011-V1.1.pdf 
osea quitar la parte de

Código PHP:
doctos/manuales/FPO-3-RM1-14022011-V1.1
y agregar esta arte

Código PHP:
manualesProcedimientosmanuales 
Me podrian ayudar a realizar el query POR FAVOR
  #2 (permalink)  
Antiguo 30/01/2012, 10:48
Avatar de hmvr414  
Fecha de Ingreso: marzo-2011
Ubicación: Santiago de Cali, Colombia
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 16
Respuesta: duda al hacer UPDATE

una opcion,

iterar registro por registro en php:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM tabla";
  2. $r = mysql_query($sql);
  3.  
  4. while($fila = mysql_fetch_assoc($r))
  5. {
  6.      $id = $fila['id'];
  7.      $registro = $fila['campoConRuta'];
  8.      $partesRuta = pathinfo($registro);
  9.      $registro = "manualesProcedimientosmanuales".$partesRuta['basename'];
  10.      mysql_query("update tabla set campoConRuta='$registro' where id='$id'");
  11. }
  #3 (permalink)  
Antiguo 30/01/2012, 11:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: duda al hacer UPDATE

Hola herwex:

No hay necesidad de iterar los registros, puedes hacer una única instrucción SQL para actualizar toda la tabla, utilizando la función REPLACE... checa el script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+---------------------------------------------------------------------+
  3. | id   | ruta                                                                |
  4. +------+---------------------------------------------------------------------+
  5. |    1 | doctos/manuales/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-1.1.pdf  |
  6. |    2 | doctos/manuales/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-1.2.pdf  |
  7. |    3 | otra/carpeta/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-V1.1.pdf    |    
  8. |    4 | doctos/manuales/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-1.3.pdf  |
  9. ----+---------------------------------------------------------------------+
  10. 4 rows in set (0.02 sec)
  11.  
  12. mysql> UPDATE tabla SET ruta =
  13.     -> REPLACE(ruta, 'doctos/manuales/FPO-3-RM1-14022011-V1.1/',
  14.     -> 'manualesProcedimientosmanuales') ;
  15. Query OK, 3 rows affected (0.09 sec)
  16. Rows matched: 4  Changed: 3  Warnings: 0
  17.  
  18. mysql> SELECT * FROM tabla;
  19. +------+------------------------------------------------------------------+
  20. | id   | ruta                                                             |
  21. +------+------------------------------------------------------------------+
  22. |    1 | manualesProcedimientosmanualesFPO-3-RM1-14022011-V1.1.pdf        |
  23. |    2 | manualesProcedimientosmanualesFPO-3-RM1-14022011-V1.2.pdf        |
  24. |    3 | otra/carpeta/FPO-3-RM1-14022011-V1.1/FPO-3-RM1-14022011-V1.1.pdf |
  25. |    4 | manualesProcedimientosmanualesFPO-3-RM1-14022011-V1.3.pdf        |
  26. +------+------------------------------------------------------------------+
  27. 4 rows in set (0.00 sec)

Observa que por ejemplo el registro 3 no se actualiza, debido a que el documento no está ubicado en la misma ruta.

Saludos
Leo.

Etiquetas: query, registros, sql, tabla, 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 13:00.