En PHPClasses encontramos una clase en PHP de un paginador. Lista los datos de una tabla en MySQL y su paginador en la parte inferior, pero además permite realizar una búsqueda en la base de datos y paginar los resultados. Todo lo anterior mediante llamadas AJAX, sin tener que recargar la página.
La clase tiene muchas opciones de configuración como: páginas a mostrar, registros por página, establecer conexión, etc.
Usando la clase
<?php // this is only used in debugging, // use error_reporting(0) in production environment error_reporting(E_ALL || E_STRICT); include('paginator.class.php'); // instantiate mysqli connection $conn = new mysqli('localhost', 'root', '','empresa') ; $query = "SELECT * FROM customers"; //$query = "SELECT * FROM customers WHERE id > 1"; // Number of records per page $recordsPerPage = 5; if(!empty($_GET['search'])){ $searchQuery = $_GET['search']; } $pageId= intval($_GET['page']); if (empty($pageId)) { $pageId = 1; }else{ $pageId = intval($pageId); } // if you are testing it locally uncomment the following line // to see how it is going to look like //sleep(2); $paginator = new Paginator($pageId,$recordsPerPage,$query,$conn); $paginator->debug = FALSE; // field(s) to search in // string or array of fields $paginator->fields = 'name'; //$paginator->fields = array('name','id'); $paginator->searchQuery = $searchQuery; // call the core function that paginates $rows = $paginator->paginate(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script language="JavaScript" src="pagination.js"></script> <link href="style.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="js/ajax.js"></script> <script type="text/javascript" src="js/ajaxUpdater.js"></script> <script type="text/javascript" src="js/paginate.js"></script> </head> <body> <div id="wrapper"> <div id='search-box' class="search-box"> <form action="<?=$_SERVER['PHP_SELF']?>" onsubmit='paginate();return false;'> <input id="search" type="text" class="search" /> <input type="submit" value="search" class="button" /> </form> </div> <div id="listing_container"> <table border="0" cellpadding="2" cellspacing="0" class="listing"> <tr> <th nowrap="nowrap" width="40" align='left'> ID</th> <th nowrap="nowrap" width="450" align='left'>Name</th> </tr> <?php foreach($rows as $row){ echo "<tr>"; echo "<td nowrap='nowrap' align='center'>{$row['id']}</td>"; echo "<td nowrap='nowrap' align='left'>{$row['name']}</td>"; echo "</tr>"; } echo "</table><br />"; $links = $paginator->getLinks (); echo "<div class='paginator'> " . $links ; echo "<p>Page " . $paginator->pageId . " of " . $paginator->totalPages . "</p>"; ?> </div><!--end of paginator--> </div><!--end of listing_container--> </div><!--end of wrapper--> </body> </html>
El resultado …
Para descargar cualquiera de los script que encontramos en PHPClasses debemos registrarnos.
Descargar | Class: AJAX Paginator
Me ha sido de muchísima utilidad para un proyecto que estoy haciendo. Muchísimas gracias 😀
ME TIRA ESTE ERROR AL TRATAR DE BUSCAR
Fatal error: Uncaught exception ‘Exception’ with message ‘Query error’ in C:\wamp\www\seminario2\PRUEBA\paginator.class.php:106 Stack trace: #0 C:\wamp\www\seminario2\PRUEBA\paginator.class.php(122): Paginator->getAffectedRows() #1 C:\wamp\www\seminario2\PRUEBA\sub_page.php(38): Paginator->paginate() #2 {main} thrown in C:\wamp\www\seminario2\PRUEBA\paginator.class.php on line 106
y cuando voy a la pagina 2 no me muestra los datos y me devuelvo ala 1 y tampooc me los muestra que podra ser?
Por que me tira el error:
Fatal error: Class ‘mysqli’ not found in C:\AppServ\www\Paginador\index.php on line 8
en la linea 8 tengo esto:
$conn = new mysqli(‘localhost’, ‘mysql’, ”,’test’) ;
y las cosas estan bien puestas dentro del $conn
Pues de antemo gracias por el codigo.. y pues tratando de compartir informacion… la razon por la que de tira el error Class ‘mysqli’ not found in C:\AppServ\www\Paginador\index.php on line 8 es porque “mysqli” Es una nueva funcionalidad que nos permite conectarnos de forma mas sencilla solo al instanciarlo, hay que revisar las versiones de appserver o wampserver o parecidos y verificar si en el php.ini esta primeramente instalado ;extension=mysqli” sin el “;”. Por eso es que tira el error si no aparece quiere decir que la version no tiene esa libreria y tienes de dos:
1: Instalar una nueva version.
2: Instalar la librería.
No me funciona, la parte de la busqueda y recarga la pagina. De donde consigo las librerias que utilizas en tu codigo fuente.
He descargado los fuentes correctamente pero no me funciona la parte de la búsqueda y recarga la pagina.
no funciona el avance de pagina ni la busqueda
buen aporte. gracias
Hola, Muy bueno!!! me encantó!
acá hay otra paginación php que me gusta mucho, solo que esta no tiene ajax :/
Saludos