Foros del Web » Programando para Internet » PHP »

Resaltar una palabra encontrada en una consulta a base de datos.

Estas en el tema de Resaltar una palabra encontrada en una consulta a base de datos. en el foro de PHP en Foros del Web. Hola a tod@s: Pues bien, os explico algo que me pide mi jefa para el trabajo, y no se como hacer.... La idea es, una ...
  #1 (permalink)  
Antiguo 12/12/2007, 07:50
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Pregunta Resaltar una palabra encontrada en una consulta a base de datos.

Hola a tod@s:

Pues bien, os explico algo que me pide mi jefa para el trabajo, y no se como hacer....

La idea es, una pequeña base de datos, donde por ejemplo yo pongo a buscar la palabra "registro1", perfecto, consigo que me salga el contenido del campo que tiene como nombre "registro1" y me salen el resto de sus campos con explicaciones y demás.

El caso es que, lo que quiero intentar, es que de todo el texto que sale de la base de datos (todos los distintos campos que imprimo por medio de etiquetas XHTML) pueda resaltar cada vez que salga la palabra "registro1" el problema es que toda la info que sale de la base de datos no es una larga cadena, sinó varias etiquetas html.

Para que me entendais:

<b>Éste es el registro1</b>
<p>Información del registro1, el registro 1 es blablablabalbalab y balabbalbal</p>
<p>Características</p>
<p> Registro1 balbalalbalabla</p>

La idea sería que cada vez que aparece la palabra "registro1" la resaltara, por ejemplo, cambiando el css, el problema es que no se como buscar la palabra (Que podría obtener por ejemplo media $_GET) en el cuerpo de la web.

Poderse hacer, supongo que se puede, ya que he visto byuscadores que lo hacen, pero no se como empezar....A ver si me podeis echar una mano.

Muchas graciasssss :)
  #2 (permalink)  
Antiguo 12/12/2007, 08:11
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Hola scangirl
Para resaltar la palabra encontrada podes hacer algo como un
str_replace($palabra_a_resaltar, '<span class="backgroundcolor:#cccccc; font-weight:bold">$palabra_a_resaltar</span>', $texto);
Espero te sirva!
__________________
Suerte! (;Þ)>-<[
------------------------
http://www.gira-sol.com.ar
  #3 (permalink)  
Antiguo 12/12/2007, 08:32
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Hola otraverix.

Muchas gracias por tu respuesta, el problema de la función que me das es que no tengo un $texto al cual aplicarle dicha función ya que yo lo que tengo es algo tipo ésto:

echo "<tr><td>".mysql_result($res, $i, 30)."</td><td>".mysql_result($res, $i, 2)." ........

Con lo cual, tendría que pasar cada uno de los resultados de la database??

Muchas gracias de nuevo. :)
  #4 (permalink)  
Antiguo 12/12/2007, 08:44
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Re: Resaltar una palabra encontrada en una consulta a base de datos.

....a ver...mmm y una funcion?
Código:
function marcador($txt){
    str_replace($palabra_a_resaltar, '<span class="backgroundcolor:#cccccc; font-weight:bold">$palabra_a_resaltar</span>', $txt); 
}
echo "<tr><td>".marcador(mysql_result($res, $i, 30))."</td><td>".marcador(mysql_result($res, $i, 2))."
...es algo rudimentario pero se puede "recauchutar"
__________________
Suerte! (;Þ)>-<[
------------------------
http://www.gira-sol.com.ar
  #5 (permalink)  
Antiguo 12/12/2007, 08:45
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Síp, lo suyo sería utilizar esa función en todas las cadenas de texto donde tengas que hacer el cambio.

Si no lo quieres hacer muchas veces puedes almacener todo en una variable sin mostrarlo por pantalla, y cuando tengas todo, buscar y reemplazar en esa cadena y mostrarla.
  #6 (permalink)  
Antiguo 12/12/2007, 08:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Resaltar una palabra encontrada en una consulta a base de datos.

El script que te puso otraverix es lo correcto, y si tienes $texto, solo tienes que asignarlo de tus funciones mysql_result.

Saludos.
  #7 (permalink)  
Antiguo 12/12/2007, 08:59
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Resaltar una palabra encontrada en una consulta a base de datos.

también existe otra que es con javascript.. así no te matas la cabeza con PHP pero recomiendo que te des una puñalada con PHP y hagas eso de esa forma. :D
  #8 (permalink)  
Antiguo 13/12/2007, 07:45
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Siempre te queda el problema de palabras contenidas en otras, por ejemplo si la palabra buscada es "laca" será resaltada en la palabra "aplacar" tal que así:

aplacar

Quizá no importe, no se.
__________________
Kelpie
  #9 (permalink)  
Antiguo 13/12/2007, 08:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Bueno, si nos ponemos estrictos habría que comprobar también que no pille ningún tag html....
  #10 (permalink)  
Antiguo 14/12/2007, 02:48
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Hola!!

Gracias a todos por la ayuda!! Al final he cogido la opción de comprobar todo mediante la función php.

El caso es que, de lo que me he dado cuenta, es que la función srt_replace, si no me equivoco....Es case sensitive....(Distingue entre mayus y minus) con lo cual la búsqueda me encuentra los resultados sea mayus o minus pero solo resalta lo que está escrito igual....¿Sabeis alguna forma de solucionar ésto??

Muchísimas gracias. :)
  #11 (permalink)  
Antiguo 14/12/2007, 03:01
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Resaltar una palabra encontrada en una consulta a base de datos.

str_ireplace
  #12 (permalink)  
Antiguo 14/12/2007, 03:14
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: Resaltar una palabra encontrada en una consulta a base de datos.

Jejeje sí! Ya la he encontrado en php.net!! Gracias Keysher!! Y de nuevo, a todos

Saludosssssss
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 19:59.