Foros del Web » Programando para Internet » PHP »

Cómo hago esto en uan BD?

Estas en el tema de Cómo hago esto en uan BD? en el foro de PHP en Foros del Web. Hola, trataré de explicar el problema que me han montado los del servidor, bueno, para mí es un problema, a lo mejor, tienen fácil solución, ...
  #1 (permalink)  
Antiguo 14/05/2008, 13:23
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 3 meses
Puntos: 0
Cómo hago esto en uan BD?

Hola, trataré de explicar el problema que me han montado los del servidor, bueno, para mí es un problema, a lo mejor, tienen fácil solución, no sé, eso espero.
Veamos, en la base de datos, en una tabla, tengo tres campos que contienen el path de la dirección de unas imágenes, osea tres imágenes en total. Hasta la fecha el path era /home/usuario/public_html/carpeta1/subcarpeta1/archivo1.jpg, claro, tengo cerca de mil imágenes y sus correspondientes paths en la BD. Ahora, cambiaron la ruta y se convierte en /home/usuario/domains/dominio.com/public_html/carpeta1/subcarpeta1/archivo1.jpg y claro ahora todas las anteriores imágenes, digámos que no existen.
Entonces mi pregunta es, habría alguna forma, algo así como, buscar /home/usuario/public_html/ ,y reemplazar por /home/usuario/domains/dominio.com/public_html/, bién diréctamente desde phpmyadmin o haciendo algún código?.
A ver si me podeis orientar un poco por favor.
Muchas gracias de antemano.

Salu2
  #2 (permalink)  
Antiguo 14/05/2008, 14:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Cómo hago esto en uan BD?

Cita:
Iniciado por mon Ver Mensaje
...
Entonces mi pregunta es, habría alguna forma, algo así como, buscar /home/usuario/public_html/ ,y reemplazar por /home/usuario/domains/dominio.com/public_html/, bién diréctamente desde phpmyadmin o haciendo algún código?.
A ver si me podeis orientar un poco por favor.
Muchas gracias de antemano.

Salu2
Algo así, poniendo donde pongo nombrecampo, el nombre del campo donde tienes las direcciones, y donde pone nombretabla el nombre de tu tabla.
UPDATE nombretabla SET nombrecampo = REPLACE(nombrecampo, '/home/usuario/public_html/', '/home/usuario/domains/dominio.com/public_html/')
  #3 (permalink)  
Antiguo 15/05/2008, 03:21
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: Cómo hago esto en uan BD?

Muchas gracias jurena. Entiendo entonces que esto sería preparar una página con el código siguiente:
conecto con la bd
hago la consulta y digo que me actualice en la tabla tal el campo tal y que me haga el REPLACE. ¿Es así? verdad?

Estaría bién así?
Código PHP:
<?


include("conectobasedatos.php");
$sql "UPDATE nombre_tabla SET nombre_campo= REPLACE(nombre_campo, '/home/usuario/public_html/', '/home/usuario/domains/dominio.com/public_html/')";
$result mysql_query($sql) ;

mysql_close();
?>
Lo que pasa es que el path en realidad es '/home/usuario/public_html/nombredelarchivo.jpg y son muchísimas imágenes, pero lo único que necesito cambiar es la parte '/home/usuario/public_html/ con lo cual no creo que eso valga, uno será '/home/usuario/public_html/archivo33.jpg, otro, '/home/usuario/public_html/archivo85.jpg, así hasta 300 distintos, pero lo único que hay que cambiar es '/home/usuario/public_html/ por home/usuario/domains/dominio.com/public_html/' . Lo veo complicado,
Gracias

EDITO. Voy a hacer una cosa. Voya a exportar esa tabla, después la veo en txt y uso el comando reemplazar y así tiene que funcionar el cambio. Luego la importo a ver que pasa, igual explota todo.

Última edición por mon; 15/05/2008 a las 04:09
  #4 (permalink)  
Antiguo 15/05/2008, 06:41
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: Cómo hago esto en uan BD?

Vale, ya cambió todo el path en la base de datos. Pero sigue sin funcionar, el path está bién, pero me temo que va tener que ser através de un UPDATE. Lo digo, porque si hago un articulo nuevo, voy a ver que path pone en las fotos y es el mismo, y esas fotos del nuevo si se ven. Pero ahora estoy tan obcecado que ya no sé ni como hacer el código para el UPDATE y si no habrá el problema de poder solo cambiar parte del path.
Alguien me puede echar un cable?

salu2
  #5 (permalink)  
Antiguo 15/05/2008, 07:08
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: Cómo hago esto en uan BD?

preparé este código, pero me dá error
Código PHP:
<? php 

// Conectamos a la base de datos 
$db =@ mysql_connect 'localhost' 'usuario_basedatos' 'contraseña' ); // ESTA ES LA LÍNEA EN LA QUE DÁ EL ERROR
mysql_select_db "nombre_BD" $db ); 
// Substituimos PATH por NUEVO PATH en el campo 
// 'campo' de la tabla 'tabla' 

$sql "UPDATE tabla SET campo = REPLACE" 
$sql .= " (campo,'/home/usuario/','/home/usuario/domains/dominio.com/') WHERE campo" 
$sql .= " LIKE '%/home/usuario/%'" 
// Ejecutamos la consulta 
$query mysql_query $sql $db ); 
// Comprovamos el resultado 
$error mysql_error (); 
if( 
$error )echo 'Hubo un error en la consulta' 
else { 
$filas mysql_affected_rows (); 
   echo 
'Filas afectadas: ' $filas 

?>
Me dá un error
Código HTML:
Parse error: syntax error, unexpected T_VARIABLE
Cómo lo véis
  #6 (permalink)  
Antiguo 15/05/2008, 13:01
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: Cómo hago esto en uan BD?

Bueno, cambié de táctica y este código ya no me hace falta.
  #7 (permalink)  
Antiguo 15/05/2008, 22:31
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
Respuesta: Cómo hago esto en uan BD?

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
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 22:55.