Foros del Web » Programando para Internet » PHP »

str_replace en Bases de datos

Estas en el tema de str_replace en Bases de datos en el foro de PHP en Foros del Web. Hola colegas: miren mi duda es la siguiente. Yo tengo un campo (1), que en él, almaceno la frace a buscar, y otro (2), que ...
  #1 (permalink)  
Antiguo 26/12/2008, 08:09
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Pregunta str_replace en Bases de datos

Hola colegas:
miren mi duda es la siguiente. Yo tengo un campo (1), que en él, almaceno la frace a buscar, y otro (2), que es por la que va a ser reemplazada. Ej.

Id campo1 campo2
1 Arroz <a href = 'arroz.htm'>Arroz</a>
2 Juan <a href = 'personas_juan.htm'>Juan</a>
.....

Cómo yo utlizo esta función de esta forma??????? donde todos los valores estan en la base de datos?????

De antemano gracias
MIL
  #2 (permalink)  
Antiguo 26/12/2008, 08:20
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

str_replace tiene la siguiente forma de uso

Código PHP:
str_replace("patron_que_se_cambiara","string_por_el_que_se_cambiara","variable_con_la_que_se_trabajara");

//aca un ejemplo
$saludo "Hola-como-estas";

//cambio los - por espacios
//reemplazo un caractero o string de una variable por otro que yo defino, en este caso
//reemplazo guion por espacio
$saludo2 str_replace("-"," ",$saludo);

echo 
$saludo2
Entonces saludo 2 debiera ser igual a:

Hola como estas
  #3 (permalink)  
Antiguo 26/12/2008, 08:24
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

Gracias amigo, conozco la sitaxis de la funcion, pero dejasme explicarme mejor

Mi duda radica en que , cómo debo hacer la consulta a la BD para que cada vez que encuentre una frace que esta en ella la remmpalce por la que le corresponde

Salu2
Reyvi
Gracias
  #4 (permalink)  
Antiguo 26/12/2008, 09:57
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

la verdad es que aun no te entiendo mucho... por lo que leo lo que se me ocurre que necesitas es una consulta a la base de datos que cuando encuentre el valor de un campo lo reemplaze por otro???

algo asi como un update?

Update nombre_tabla set campo1 = '$campo2' where id='$id'

si no le achunte a lo que pides, seria bueno que des mas caracteristicas de lo que estas haciendo, como un ejemplo real para ver si de verdad capto

saludos
  #5 (permalink)  
Antiguo 29/12/2008, 08:16
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

Has intalado alguna vez un foro PhpBB. En la administración de los mismos se encuentra una seccion de palabras cesuradas, en la cual tu escribes la palabra censurada y el valor por el cual sea reemplazada. Ej.

loco = @#%^

entiendes???? Lo que pretendo hacer es una aplicación que cuando envie los datos del formulario se reemplacen todas las palabras que coincidan con el campo1 de la BD(base de datos) por las palabras del campo2 de la BD.

De todas formas si necesitan mas explicaciones no hay problemas, solo diganme

saludos y gracias mil
  #6 (permalink)  
Antiguo 29/12/2008, 13:36
Avatar de bLEx  
Fecha de Ingreso: mayo-2008
Ubicación: Villa Alemana, Chile
Mensajes: 181
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

ahh que entrete :P, mmm bueno lo que puedes hacer es tener como bien mostraste la base de datos donde sale la palabra a censurar y la palabra con la cual esta sera reemplazada.

Primero tomas el string con la informacion y lo separas por espacios. Luego cada una de las palabras las vas ingresando a un arreglo, entonces tendras algo asi...

Cita:
Hola mundo pechocho

arreglo=("Hola","mundo","pechocho")
Finalmente tendras un arreglo cfon todas las palabras del texto, entonces l quehaces es recorrer posicion por posicion y en cada una de esas buscas en la base de datos por la palabra para reemplazar en caso de que exista.

Código PHP:
for($i=0$i<count($arreglo); $i++){

  
$palabra $arreglo[$i]
  
$sql "select campo2 from tabla where campo1=".$palabra."";
  
$res mysql_query($sql);

  if(
mysql_num_rows($res) > 0){

    
$arreglo[$i] = "campo1";

  }


Y despues se supone que ya tienes el arreglo modificado entonces unes todas las palabras... Una idea para unirlas seria...

Código PHP:
$parrafo $arreglo[0];

for(
$i=1$i<count($arreglo) ;$i++){

  
$parrafo " ".$arreglo[$i];


Buena esa es una idea, asi como que se me ocurre de una...

Ojala te ayude y encuentres una mejor solucion
saludos
  #7 (permalink)  
Antiguo 30/12/2008, 07:50
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

Ok, eso esta perfecto pero que tal si en vez de palabras yo quiere sustituir fraces completas??????? Ej

Linux contra Windows = Linux vs. Windows (sustituir esa frace completa por la otra con link y todo)

Gracias
Salu2
Reyvi
  #8 (permalink)  
Antiguo 30/12/2008, 08:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 4 meses
Puntos: 17
Respuesta: str_replace en Bases de datos

A ver si me aclaro... tienes una tabla con dos campos: texto original y reemplazo y quieres que, dado un texto en concreto, te reemplace las ocurrencias de texto original. ¿Es eso?

Si es aí lo que se me ocurre es consultar la BDD para recuperar todos los campos de esa tabla y luego pasar un str_replace. De hecho puedes hacerlo con los dos arrays en la misma intrucción y te lo haría todo... claro que hay que tener mucho cuidado con los tags HTML....

Código php:
Ver original
  1. // Obtiene: Debes comer pizza, cerveza y helados todos los dias
  2. $frase_original  = "Debes comer frutas, verduras y fibra todos los dias";
  3. $sano = array("frutas", "verduras", "fibra");
  4. $sabroso   = array("pizza", "cerveza", "helados");
  5.  
  6. $nueva_frase = str_replace($sano, $sabroso, $frase_original);

http://es2.php.net/str_replace
  #9 (permalink)  
Antiguo 02/01/2009, 08:47
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

Ok, eso que dices esta muy bien, pero lo que deceo realizar es eso mismo pero con algunas de las fraces que se encuentran en un registro dentro de la BD
  #10 (permalink)  
Antiguo 02/01/2009, 08:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: str_replace en Bases de datos

bien, entonces es muy claro....

has los SELECT que necesites... obtienes lo datos, cambias las palabras...

strtr es mejor... y luego realizas el UPDATE

¿listo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 02/01/2009, 09:04
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 1 mes
Puntos: 81
Respuesta: str_replace en Bases de datos

Ok... pero finalmente cual es tu problema?... no sabes como abordar el problema o no tienes idea de como hacerlo ?

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #12 (permalink)  
Antiguo 02/01/2009, 09:07
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

no sé como hacerlo, ese es el gran problema
pero si tengo la idea, qu es la que explico arriba
  #13 (permalink)  
Antiguo 02/01/2009, 09:44
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 16 años, 11 meses
Puntos: 4
Sonrisa Respuesta: str_replace en Bases de datos

Yo tuve ese mismi problema al hacer un buscador de telefonos en mi DB; antes de ponerme a buscar el telefono, debia limpiar de guiones, puntos y parentesis lo que el usuario escribió, y tambien debia limpiar el campo telefono que yo tenia en mi DB, para asi ir comparar mejor durante la busqueda, esto fue lo que hice:


la limpieza de lo que el usuario escribe se hace con str_replace previamente, luego haces la consulta:

SELECT * FROM telefonos WHERE REPLACE (telefonos.telefono,'+','') LIKE '%".$_GET['txtnumero_tlf']."%';

si el usuario escribe +54(2652)15216270, este codigo solamente eliminaria el '+'

Espero que te sea de ayuda.
  #14 (permalink)  
Antiguo 05/01/2009, 10:54
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: str_replace en Bases de datos

leac3:
gracias por reponderme pero lo que necesito saber como buscar dentro de la BD todos los valores (textos, fraces completas, palabras, ect) que se encuentra en un campo especifico, obteniendo las coincidencias de un campo de otra tabla, para luego reemplazarlos por otros

Gracias Mil
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 04:31.