Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 14-may-2008, 13:23   #1 (permalink)
mon
mon ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2003
Mensajes: 500
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
mon está desconectado   Responder Citando
Antiguo 14-may-2008, 14:01   #2 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 413
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/')
jurena está desconectado   Responder Citando
Antiguo 15-may-2008, 03:21   #3 (permalink)
mon
mon ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2003
Mensajes: 500
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-may-2008 a las 04:09.
mon está desconectado   Responder Citando
Antiguo 15-may-2008, 06:41   #4 (permalink)
mon
mon ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2003
Mensajes: 500
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
mon está desconectado   Responder Citando
Antiguo 15-may-2008, 07:08   #5 (permalink)
mon
mon ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2003
Mensajes: 500
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
mon está desconectado   Responder Citando
Antiguo 15-may-2008, 13:01   #6 (permalink)
mon
mon ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2003
Mensajes: 500
Re: Cómo hago esto en uan BD?

Bueno, cambié de táctica y este código ya no me hace falta.
mon está desconectado   Responder Citando
Antiguo 15-may-2008, 22:31   #7 (permalink)
Moderador NO Sabio
BrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy prontoBrujoNic llegará a ser famoso muy pronto
 
Avatar de BrujoNic
 
Fecha de Ingreso: noviembre-2002
Ubicación: Costa Rica/Nicaragua
Mensajes: 10.656
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
__________________
Orgulloso de ser latino y demostrar que si uno trata de escribir bien, los demás comprenderán lo que respondo.
¿Fácil verdad?
BrujoNic está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:46.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93