Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Cómo hago esto en uan BD? (http://www.forosdelweb.com/f18/como-hago-esto-uan-bd-586501/)

mon 14/05/2008 13:23

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

jurena 14/05/2008 14:01

Re: Cómo hago esto en uan BD?
 
Cita:

Iniciado por mon (Mensaje 2404771)
...
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/')

mon 15/05/2008 03:21

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.

mon 15/05/2008 06:41

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 15/05/2008 07:08

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 15/05/2008 13:01

Re: Cómo hago esto en uan BD?
 
Bueno, cambié de táctica y este código ya no me hace falta.

BrujoNic 15/05/2008 22:31

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 zona horaria es GMT -6. Ahora son las 10:03.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.