Foros del Web » Programando para Internet » PHP »

Buscar una palabra clave en un titulo.

Estas en el tema de Buscar una palabra clave en un titulo. en el foro de PHP en Foros del Web. Tengo una base de datos con 10 palabras claves como por ejemplo agua - sol - playa - calor - auto - avion - vacaciones ...
  #1 (permalink)  
Antiguo 02/01/2006, 13:08
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
Buscar una palabra clave en un titulo.

Tengo una base de datos con 10 palabras claves como por ejemplo agua - sol - playa - calor - auto - avion - vacaciones - mar - lluvia - amor y otra base de datos con x registros de noticias, que contiene tres campos título - url - copete.
Lo que quiero hacer es que el código busque coincidencia entre las palabras claves y el titulo de cada noticia; entonces, si una noticia tiene como título "el calor de las vacaciones", el codigo me tiene que mostrar la imagen relacionada a la palabra clave calor (sin tener en cuenta la 2da palabra clave que seria vacaciones en este caso... (siempre tienn preferencia la primera palabra encontrada).
Por ejemplo, si en otra noticia el titulo no coincide con ninguna palabra clave, no muestro ninguna imagen.

Espero que me puedan ayudar con el código.
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #2 (permalink)  
Antiguo 02/01/2006, 17:45
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 12 años
Puntos: 0
pues yo no me complicaria mucho y haria esto:

creo una variable y le asigno el resultado de hacer explode( ' ', $titulo)
pongo las claves dentro de un array
recorro el primer array, tomo un valor y los comparo con todos los del primer array
si encuentro una coincidencia quiebro el loop, el resultado que queria es el iterador del segundo array
switcheo ese valor

tambien puedes usar strpos( $titulo, $clave), esto devuelve la posición numérica de $clave en $titulo. los comparas y usas el valor mas bajo.
  #3 (permalink)  
Antiguo 02/01/2006, 18:06
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
Hola plus_ultra! muchas gracias por tu ayuda pero mira..., es muy dificil para mi entender lo que tu me dices
¿no hay algun código ya realizado por internet?
un saludo y mil gracias
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #4 (permalink)  
Antiguo 02/01/2006, 18:30
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 13 años
Puntos: 7
Puedes usar _índices_ full text para realizar las búsquedas, la sintáxis dependerá del gestor de base de datos que tengas.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 02/01/2006, 19:54
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 12 años
Puntos: 0
flashera:
imagino que si pero desconozco donde podrias encontrarlo. aca pongo el código que haria yo:
Código:
//a partir de aquí tengo el titulo($titulo)
$claves = array( 'agua', 'sol', 'playa', 'calor', 'auto', 'avion', 'vacaciones', 'mar', 'lluvia', 'amor' ); 
$separador = explode ( ' ', $titulo);

$palabras = count($separador);
$nclaves = count($claves);

for($i = 0; $i < $palabras; $i++)
{
    for($j = 0; $j < $nclaves; $j++)
    {
        if($separador[$i] == $claves[$j]) {
            break;
        }
    }
}

if($i != $palabras) {
    $resultado = $clave[$j];
}
else {
    $resultado = false;//no se encontro ninguna clave
}
  #6 (permalink)  
Antiguo 03/01/2006, 06:43
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
y si el array lo quiero generar con datos desde una base de datos como hago?
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #7 (permalink)  
Antiguo 03/01/2006, 15:43
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
alquien que me ayude!!!
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
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 01:30.