Código PHP:
<?php
conectar();
//iniciamos paginador
if (!isset($_GET['p'])) {
$p = 0;
}
else {
$p = $_GET['p'];
}
//configurar valores search
$res = 0; //resultados de busqueda a 0
$ini = $p*10; // resultado inicial
$prints = 10; // resultados a mostrar
$search_terms = mysql_real_escape_string($_GET['q']);
$search_terms = htmlentities($search_terms);
$cuenta = explode(" ", $search_terms);
$cuenta = count($cuenta);
if ($cuenta == 1) { //Si la busqueda es de una palabra
$sacar = "SELECT titulo,artist,rand FROM arch WHERE titulo LIKE '%$search_terms%' OR artist LIKE '%$search_terms%' ORDER BY id DESC LIMIT $ini,$prints";
}
else {
$sacar = "SELECT titulo, artist, rand, MATCH (titulo,artist) AGAINST ('$search_terms' IN BOOLEAN MODE) AS coincidencias FROM arch WHERE MATCH(titulo,artist) AGAINST ('$search_terms' IN BOOLEAN MODE) ORDER BY coincidencias DESC LIMIT $ini,$prints";
}
$ask = mysql_query($sacar);
$records = mysql_num_rows($ask);
while ($view = mysql_fetch_assoc($ask)) {
$res++;
$titulo = $view["titulo"];
$rand = $view["rand"];
$artist = $view["artist"];
$artist = strtolower($artist);
$texto_indexa = $titulo."-".$artist;
$texto_indexa = preg_replace('/\s+/', ' ', $texto_indexa);
$texto_indexa = str_replace("#", "", $texto_indexa);
$texto_indexa = str_replace(" ", "-", $texto_indexa);
$texto_indexa = str_replace("%", "", $texto_indexa);
$texto_indexa = str_replace("/", "-", $texto_indexa);
$texto_indexa = str_replace('"\"', "-", $texto_indexa);
$texto_indexa = str_replace("`", "", $texto_indexa);
$texto_indexa = str_replace("'", "", $texto_indexa);
$texto_indexa = str_replace("ñ", "n", $texto_indexa);
$texto_indexa = str_replace("'", "-", $texto_indexa);
$link_indexa = 'escucha/'.$rand.'/'.$texto_indexa;
echo $link_indexa;
}
if ($res == 0) {
echo "No se ha encontrado nada con estos criterios de búsqueda<br><br>Te puede interesar:<br><br>";
}
$next = $p+1;
if ($p>0) {
$back = $p-1;
echo "<a href='search.php?q=".$search_terms."&p=".$back."'><< Back</a> | ";
}
if ($records == 10) {
echo "<a href='search.php?q=".$search_terms."&p=".$next."'>Next >></a>";
}
mysql_close($link);
?>
Quiero mejorar el buscador, para que me funcione bien en todas las busquedas ya sea de 1, 2 o 10 letras.
Es un buscador que tiene muchas busquedas por segundo, por lo que agradecería un buscador que no saturase el servidor. Actualmente, con ese código funciona perfecto, pero no me saca todos los registros necesarios
Por favor, es urgente.
Gracias!
