(¡Ya busqué en google! jejeje, antes de que me respondan eso, pero encontré 50000 tutoriales y me los leí todos pero no pude dar con ninguno que resolviera mi problema.)
...estoy haciendo un pequeño search engine en mi sitio pero no logro dar con la solución a un problema de búsqueda que tengo: cuando busco dos o más palabras clave me da error.
Esta es la parte de mi código necesaria para entender como hago mi búsqueda en MySQL (tengo un campo Fulltext)
Cita:
Explicación detallada:<?PHP
include('./includes/config.php');
$busqueda = $_REQUEST["busqueda"]; /// aquí llega la palabra clave que
$cantidad = 10; //cantidad de resultados por pagina
$inicial = $pagina * $cantidad; /// esto sirve para la paginación de los resultados
$trozos = explode(" ", $busqueda); /// separa las palabras
$numero = count($trozos); /// cuenta la cantidad de palabras
if ($numero==1)
{
$cad = "SELECT * FROM tabla WHERE columna1 LIKE '%$busqueda%' OR columna2 LIKE '%$busqueda%' OR columna3 LIKE '%$busqueda%' AND state='true' LIMIT $inicial, $cantidad";
}
else
{
$cad = "SELECT * MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AS Score
FROM tabla WHERE MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AND state='true' LIMIT $inicial, $cantidad ORDER BY Score";
}
$resultados = mysql_query($cad);
include('./includes/config.php');
$busqueda = $_REQUEST["busqueda"]; /// aquí llega la palabra clave que
$cantidad = 10; //cantidad de resultados por pagina
$inicial = $pagina * $cantidad; /// esto sirve para la paginación de los resultados
$trozos = explode(" ", $busqueda); /// separa las palabras
$numero = count($trozos); /// cuenta la cantidad de palabras
if ($numero==1)
{
$cad = "SELECT * FROM tabla WHERE columna1 LIKE '%$busqueda%' OR columna2 LIKE '%$busqueda%' OR columna3 LIKE '%$busqueda%' AND state='true' LIMIT $inicial, $cantidad";
}
else
{
$cad = "SELECT * MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AS Score
FROM tabla WHERE MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AND state='true' LIMIT $inicial, $cantidad ORDER BY Score";
}
$resultados = mysql_query($cad);
Tengo un form en donde puedo escribir la(s) palabra(s) clave, si busco una no tengo problemas pero si busco 2 o mas me da error.
Así que el error se encuentra aquí:
Cita:
Espero que esto sea suficiente como para ofrecerme un ayudita (si necesitan el resto del código o la tabla no tengo problemas en subirla -solo que no entra todo en un solo post, por eso no lo hice ahora-) SELECT * MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AS Score
FROM tabla WHERE MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AND state='true' LIMIT $inicial, $cantidad ORDER BY Score
FROM tabla WHERE MATCH (columna1, columna2, columna3) AGAINST ('$busqueda') AND state='true' LIMIT $inicial, $cantidad ORDER BY Score