Ver Mensaje Individual
  #13 (permalink)  
Antiguo 24/02/2013, 11:18
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Paginacion en php

Los comentarios están en el código, no es tu base pero puedes cambiar por lo que tienes.
Código PHP:
Ver original
  1. <form method='post' action='<?=$_SERVER['PHP_SELF']?>'>
  2.     <input type="text" name="buscar" id="buscar">
  3.     <input type="submit" value="buscar" />
  4. </form>
  5.  
  6. <?php
  7. // Variables de Conexion
  8. $host       = 'localhost';
  9. $user       = 'root';
  10. $password   = '';
  11. $database   = 'buscadorfulltext';
  12. $port       = 3306;
  13. $socket     = '';
  14.  
  15. // Parametros a ser usados por el Paginador y el Buscador
  16. $cantidadRegistrosPorPagina = 1;
  17. $cantidadEnlaces            = 10;
  18. //$totalRegistros, sera calculado mas tarde con una consulta mysql (SQL_CALC_FOUND_ROWS).
  19. $totalRegistros             = 0;
  20. // $pagina: Verificamos si sera en la primera pagina u clickeo en un enlace del paginador.
  21. $pagina                     = isset($_GET['pagina'])? $_GET['pagina'] : 0;
  22. // $inicioLimit Veo como sera el Inicio del Limit.
  23. $inicioLimit                = $cantidadRegistrosPorPagina * $pagina;
  24.  
  25. // Aqui tendrias que ver si se viene por el Formulario o por el paginador.
  26. // Para simplificar supongo que se envia por POST y el campo de busqueda es buscar.
  27. // la busqueda se puede o propagar por variable (get) ej. consulta o se puede hacer
  28. // por sesiones aqui propagaremos por get la consulta, en una variable consulta.
  29. if (isset($_POST['buscar']) || isset($_GET['consulta']) ) {
  30.     $conexion       = mysqli_connect($host, $user, $password, $database, $port, $socket);
  31.     // Aqui lo que venga por tu formulario.    
  32.     $datoABuscar    = '';
  33.     if (isset($_POST['buscar'])) {
  34.         $datoABuscar = $_POST['buscar'];
  35.         $pagina = 0;
  36.     } else {
  37.         $datoABuscar = $_GET['consulta'];
  38.     }
  39.     // Armamos la Consulta de Busqueda
  40.     $consulta       = 'SELECT SQL_CALC_FOUND_ROWS * FROM buscador WHERE desarrollo like "%%' . $datoABuscar . '%%" LIMIT %d, %d';
  41.     $consulta       = sprintf($consulta, $inicioLimit, $cantidadRegistrosPorPagina);    
  42.     // Vengo por el Buscador o por Paginacion
  43.     $resultado1 = mysqli_query($conexion, $consulta);
  44.     $resultado2 = mysqli_query($conexion, "SELECT FOUND_ROWS() as cantidad");
  45.     // Aqui puedes mostrar todos los resultados.
  46.     $fila       = mysqli_fetch_assoc($resultado1);
  47.     while ($fila) {
  48.         echo $fila['titulo'] . '<br />';
  49.         $fila       = mysqli_fetch_assoc($resultado1);
  50.     }
  51.     // A partir de Aqui paginas
  52.    $cantidad = mysqli_fetch_assoc($resultado2);
  53.    echo $totalRegistros  = $cantidad['cantidad'];
  54.    #################################
  55.   // Comenzamos incluyendo el Paginador.
  56.     require_once 'Paginador/Paginador.php';
  57.     // Instanciamos la clase Paginador
  58.     $paginador          = new Paginador();
  59.     $_GET['consulta']   = $datoABuscar;
  60.     $paginador->setPropagar(array('consulta'));
  61.     // Configuramos cuanto registros por pagina que debe ser igual a el limit de la consulta mysql
  62.     $paginador->setCantidadRegistros($cantidadRegistrosPorPagina);
  63.     // Cantidad de enlaces del paginador sin contar los no numericos.
  64.     $paginador->setCantidadEnlaces($cantidadEnlaces);
  65.    
  66.     // Y mandamos a paginar desde la pagina actual y le pasamos tambien el total
  67.     // de registros de la consulta mysql.
  68.     $datos              = $paginador->paginar($pagina, $totalRegistros);
  69.    
  70.     // Preguntamos si retorno algo, si retorno paginamos. Nos retorna un arreglo
  71.     // que se puede usar para paginar del modo clasico. Si queremos paginar con
  72.     // el enlace ya confeccionado realizamos lo siguiente.
  73.     if ($datos) {
  74.         $enlaces = $paginador->getHtmlPaginacion('pagina', 'span');
  75.    
  76.     echo '<div class="badoo">';
  77.         foreach ($enlaces as $enlace) {
  78.             echo $enlace . "\n";
  79.         }
  80.     echo '</div><br/><br />';
  81.     }
  82.    
  83.    ####################################
  84. } else {
  85.     echo 'Realiza una Búsqueda';
  86. }
Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp