Ver Mensaje Individual
  #15 (permalink)  
Antiguo 28/10/2008, 22:06
elbastardo
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Te dejo lo que hice con el Phppaging, es realmente simple, solo hay que bajar la librería y hacer algunos pequeños cambios.

Por partes, la librería se baja de acá: http://phppaging.phperu.net/descargas/d1.html

Al archivo PHPPaging.lib.php lo subimos en cualquier lado en nuestro servidor y lo incluimos una vez en nuestro "buscar.php".

Código PHP:
<?php require_once 'PHPPaging.lib.php'?>
Luego, inicializamos el paginador y hacemos algunos ajustes para los resultados de la búsqueda.
Esto después de:

Código PHP:
// verificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    
$frase addslashes($_GET['frase']); 
Así:
Código PHP:
<?php
    
// Instanciamos el objeto
    
$paging = new PHPPaging;
    
// Poniendo 20 resultados por página
    
$paging->porPagina(10); 
    
// Estableciendo las páginas adyacentes 
    
$paging->paginasAntes(41020); 
    
$paging->paginasDespues(41020);  
    
    
// Cambiando el texto de la referencia a la página actual
    
$paging->mostrarActual("<span class=\"navthis\">{n}</span>"); 
    
    
// Indicamos la consulta al objeto
    // hacemos la consulta de busqueda
    // acá van las modificaciones, se elimina $sqlBuscar, $totalRows y el if por esto
    
    
$paging->agregarConsulta("SELECT noticiaTitulo, noticiaNoticia,
                              MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY cocincidencias ASC"
$server_link);            
    
// aca otros cambios, con la funcion ejecutar mostramos todo
       
$paging->ejecutar();
        
    
// y  luego mostramos los resultados con un pequeño cambio al while
        
while($row $paging->fetchResultado()) {
        echo 
"<strong><a href='#'>$row[noticiaTitulo]</a>:</strong> <em>Coincidencias: "round($row['coincidencias']) ."</em><br />";
echo 
"<p>".substr(strip_tags($row['noticiaNoticia']), 0255)."...</p>";

?>
<?php 
}} ?>
<?php
     
// acá nos muestra la cantidad de resultados encontrados, el numero de paginas, etc
echo "<b><SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:black;font-weight:bold\">Página ".$paging->numEstaPagina()." de ".$paging->numTotalPaginas()."</SPAN></b><br />";
    echo 
"<SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:black;font-weight:bold\">Mostrando ".$paging->numRegistrosMostrados()." resultados, del ".$paging->numPrimerRegistro()." al ".$paging->numUltimoRegistro();
    echo 
" de un total de ".$paging->numTotalRegistros()."</SPAN><br />";
    
// Comienza la barra de navegacion, la mostramos
    
echo "<b><div id=\"siteInfo12\"><SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:#9B0000;font-weight:bold\">Navegación: ".$paging->fetchNavegacion()."</SPAN></div></b>";
     
// y listo!
   
?>
La barra de navegación tiene algunos ajustes en el tipo de letra, color, etc.

Espero que sirva, lo puse a modo de agradecimiento ;)

Saludos.