Muy buenas.
Tengo un buscador interno en la web que aunque funciona correctamente me a dado una sorpresa muy extraña.
No hace busquedas de textos inferiores a 4 letras. Si quiero que busquen tos o té no muestra resultados y la verdad que no lo comprendo ya que no existe ninguna linea que indique que exista un numero minimo de caracteres.
Os dejo el codigo para ver si alguien puede echarme un cable con esto.
Formulario de la busqueda
Código:
<form action="insertar-busqueda.php" method="post" id="buscar">
<p>Titulo</p>
<input type="text" name="titulo"/>
<p>Url</p>
<input type="text" name="url"/>
<p>Descripción</p>
<textarea name="descripcion"></textarea>
<input type="submit" value="enviar" />
</form>
php busqueda.
Código:
<?php
$conexion=mysql_connect("localhost", "xxxxxxxxx", "xxxxxxxxxx") or die('Error de conexión a la Base de Datos!!!');
//conexión con la base de datos
mysql_select_db("otraform_general2",$conexion) or die('Error de selección de Base de Datos!!!');
// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO buscador (titulo,url,descripcion)
VALUES ('{$_POST['titulo']}','{$_POST['url']}','{$_POST['descripcion']}')",$conexion);
if (mysql_errno($conexion))
{
echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
mysql_close($conexion);
} else{
$conexion;
header("location:ver-busqueda.php");
}
?>
Código:
<?php
$server_link = mysql_connect("localhost", "xxxxxxxx", "xxxxxxxxxx");
if (empty($_GET['frase'])){
$texto_busqueda = "";
}else{
$texto_busqueda = $_GET['frase'];}
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
$frase = addslashes($_GET['frase']);
// hacemos la consulta de busqueda
// ver explicación mas abajo
$sqlBuscar = mysql_query("SELECT titulo, url, descripcion,
MATCH (titulo, url, descripcion)
AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
FROM buscador WHERE MATCH (titulo, url, descripcion)
AGAINST ('$frase' IN BOOLEAN MODE)
ORDER BY coincidencias DESC", $server_link)
or die(mysql_error());
$totalRows = mysql_num_rows($sqlBuscar);
// Enviamos un mensaje
// indicando la cantidad de resultados ($totalRows)
// para la frase busada ($frase)
}
?>
Alguien puede ayudarme con esto por favor?
Muchas gracias