1.- Primero compruebo si el usuario a escrito 1 o mas palabras, para ver que metodo voy a utilizar.
Código:
Bueno aqui si pongo una palabra si funciona el script, pero si coloco 2 o mas... Al parecer no las busca.$palabra = ucwords(Limpiar($_POST['palabra'])); $trozos = explode(" ", $palabra); $palabras = count($trozos); #Si solo escribio 1 palabra, usamos el precedimiento LIKE if($palabras == 1) { $busqueda = Query("articulos", "WHERE titulo LIKE '%$palabra%' or contenido LIKE '%$palabra%' LIMIT 50"); $pr = 'No'; #Si escribio mas de 2 usamos MATCH...AGAINST } elseif($palabras > 1) { $busqueda = mysql_query("SELECT id, titulo, fecha, leido, autor, MATCH (titulo, contenido) AGAINST ('".($palabra)."') AS score FROM azp_articulos WHERE MATCH (titulo, contenido) AGAINST ('".($palabra)."') ORDER BY score DESC LIMIT 50"); $pr = 'Si'; }
A continuación tengo el siguiente codigo, para comprobar si la encontro...
Código:
Pasando esa busqueda siempre me tira que no la encontro, aunque si exista el articulo en la base de datos.$total = NumRows($busqueda); #Vemos si encontramos algun articulo if($total == 0) { $sql = Query("articulos_busquedas", "WHERE busqueda LIKE '%$palabra%'"); $total = NumRows($sql); $ip = Ip(); $fecha = Fecha(); if($total == 0) { Insert("articulos_busquedas", "busqueda, frecuencia, fecha, ip", "'$_POST[palabra]', '1', '$fecha', '$ip'"); } else { $row = GetRows($sql); Update("articulos_busquedas", "frecuencia = (frecuencia) + '1', fecha = '$fecha', ip = '$ip' WHERE id = '$row[id]' LIMIT 1"); } Free($sql); echo '<p align="center"><b><font face="Verdana" size="1">Lo Sentimos, su busqueda no fue encontrada, pero ha sido almacenada en nuestra base de datos para anexarla lo mas pronto posible, esperamos su comprensión.<br><a href="javascript:history.go(-1)">Regresar</a></font></b></p>'; } else { #-Imprimimos Resultados }
Alguien sabe que tengo mal? de antemano gracias.