una registros paginación paginacion hacer ejemplos con como busqueda avanzada php mysql pagination

registros - paginacion php mysql ajax



Cómo hacer que la consulta se transfiera a las páginas subsiguientes al paginar los resultados (2)

Creo que debes usar el token OFFSET en tu consulta. Al igual que:

$query = "SELECT * FROM table ORDER BY title LIMIT $perPage OFFSET $perPage * $page";

Espero que esto ayude.

He estado revisando todas las preguntas y respuestas sobre paginación en el sitio, y entre todos los códigos y soluciones OO, este código es uno de los más cortos y sencillos:

<?php // insert your mysql connection code here $perPage = 10; $page = (isset($_GET[''page''])) ? (int)$_GET[''page''] : 1; $startAt = $perPage * ($page - 1); $query = "SELECT COUNT(*) as total FROM table"; $r = mysql_fetch_assoc(mysql_query($query)); $totalPages = ceil($r[''total''] / $perPage); $links = ""; for ($i = 1; $i <= $totalPages; $i++) { $links .= ($i != $page ) ? "<a href=''index.php?page=$i''>Page $i</a> " : "$page "; } $query = "SELECT * FROM table ORDER BY title LIMIT $startAt, $perPage"; $r = mysql_query($query); // display results here the way you want echo $links; // show links to other pages

Pero todavía no veo cómo regenerar la consulta con el LIMIT actualizado en las páginas siguientes. Ninguno de los mensajes deja esto en claro, y continúo obteniendo segundas páginas en blanco sin importar el código que intento. Realmente agradecería que alguien pudiera explicar cómo obtener los resultados de la consulta en las siguientes páginas.


No estoy seguro de por qué necesita seleccionar recuento (*) cada vez. Sugeriría hacerlo así:

<?php /* establish the connection */ $mysqli = new mysqli ( ''localhost'', // The host to connect to ''username'', // The user to connect as ''password'', // The password to use ''dbname''); // The default database to query /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s<br />/n", mysqli_connect_error()); exit(); } $perPage = 10; $page = (isset($_GET[''page''])) ? (int)$_GET[''page''] : 1; $startAt = $perPage * ($page - 1); /* Send a query to the server */ if ($result = $mysqli->query( "SELECT * FROM table ORDER BY title limit $startAt, $perPage")) { $rowCnt = $result->num_rows; echo "<h3>Page: $page</h3>/n"; /* Fetch the results of the query and show results*/ while( $row = $result->fetch_assoc() ) { printf("%s - %s<br/>/n", $row[''orderDate''], $row[''orderDescription'']); } /* Show next page, previous page links dynamically */ echo "<p>/n"; // generate previous page link if current page no is after 1st page if ($page > 1) printf("<a href=''%s?page=%d''>Previous Page</a>&nbsp;&nbsp;&nbsp;/n", $_SERVER["SCRIPT_NAME"], ($page-1)); // generate next page link if we were able to fetch $perPage rows if ($rowCnt == $perPage) printf("<a href=''%s?page=%d''>Next Page</a>/n", $_SERVER["SCRIPT_NAME"], ($page+1)); echo "</p>/n"; /* Destroy the result set and free the memory used for it */ $result->close(); } /* close the connection */ $mysqli->close(); ?>

Estoy usando la nueva extensión mysqli de php, aquí está la documentación de referencia php mysqli