Foros del Web » Programando para Internet » PHP »

reemplazar algo en todas las tablas (y campos) de mysql

Estas en el tema de reemplazar algo en todas las tablas (y campos) de mysql en el foro de PHP en Foros del Web. Tengo una duda sobre como recorrer todas las tablas y campos de una base de datos para cambiar una cadena. Lo que tengo es un ...
  #1 (permalink)  
Antiguo 10/04/2010, 11:03
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
reemplazar algo en todas las tablas (y campos) de mysql

Tengo una duda sobre como recorrer todas las tablas y campos de una base de datos para cambiar una cadena.

Lo que tengo es un script para cambiar el <br> por un <br />. Como lo ven?

Cita:
$query = mysql_query("SELECT id, sections FROM *") or die(mysql_error());


while($section = mysql_fetch_array($query, MYSQL_ASSOC)){

$brs=preg_replace("/(<br>)/is","<br />",$section['sections']);

$brs = mysql_real_escape_string(utf8_decode(trim($brs)));

$query = mysql_query("UPDATE $table SET ($brs) WHERE id = $section['id']");

}
Las tablas son alrededor de 20, y solo contienen un campo id y otro sections, con varios renglones (=secciones).
  #2 (permalink)  
Antiguo 10/04/2010, 11:06
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: reemplazar algo en todas las tablas (y campos) de mysql

Tambien, leyendo esto (de Brujo Nic):
http://www.forosdelweb.com/f21/reemp...-mysql-186993/

Idee esto pero no funciona:
Cita:
$query = mysql_query("UPDATE * SET sections = REPLACE(sections, '<br>', '<br />');") or die(mysql_error());
  #3 (permalink)  
Antiguo 10/04/2010, 11:09
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: reemplazar algo en todas las tablas (y campos) de mysql

tenes todos los nombres de las tablas? Te doy una idea

Código PHP:
$tablas = array('tabla1''tabla2''tabla3''tabla4''tabla5''tabla6');

# Supongamos que por aca te conectas

foreach($tablas as $tabla){

    
$sql "SELECT * FROM $tabla";
    
$q mysql_query($sql,$link);
    while(
$res mysql_fetch_array($q)){
        
# Aca cambias todo lo que queres cambiar
    
}


__________________
HV Studio
Diseño y desarrollo web
  #4 (permalink)  
Antiguo 10/04/2010, 11:38
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: reemplazar algo en todas las tablas (y campos) de mysql

Gracias. Si, conozco el nombre de las tablas. Tengo entonces un array, y ejecuto esto, pero no reemplaza nada!:

Cita:
foreach($tablas as $tabla){

$q = mysql_query("SELECT id, sections FROM $tabla");

while($section = mysql_fetch_array($q)){

$brs=preg_replace("/<br>/is","<br />",$section['sections']);
$query = mysql_query("UPDATE $tabla SET sections = $brs WHERE id = ".$section['id']);
}

}
Error:
Cita:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
  #5 (permalink)  
Antiguo 10/04/2010, 11:46
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Ah! Ahora si. Tenia que poner los contenidos entre comillas:
Cita:
mysql_query("UPDATE $tabla SET sections = '$brs' WHERE id = '$id'") or die(mysql_error() );
Bueno, gracias por la estructura.

Todo bien!


Última edición por GatorV; 11/04/2010 a las 21:43

Etiquetas: campos, mysql, reemplazar, tablas, todas
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 09:22.