Paginación sencilla en PHP

23

Autor deambulando | en Programación, Software, php | el 10-08-2009



Hoy vamos a paginar.

Hay maneras muy muy muy simples, así que os voy a presentar la manera mas sencilla y luego una paginación algo mas avanzada pero mejor para el usuario.

Para que nos quede algo así:

paginacion

Esto simplemente el seteo de variables y mostrar los valores:

< ?php
	//Numeración de páginas configuración
	$query = "SELECT count(id) from tabledemo"; // primero devolvemos un count para saber cuantos registros tenemos
	$row=mysql_fetch_assoc(mysql_query($query));
	$total_records = $row['Total'];//aquí tenemos el total

	$records_per_page = 5;//cuantos resultado por página para mostrar

	$total_pages = ceil($total_records / $records_per_page);//número total de páginas

	$page = intval(cG("p"));//obtener la página que se ha de mostrar
	if ($page < 1 || $page > $total_pages) $page = 1;//control para que el número de página sea valido

	$offset = ($page - 1) * $records_per_page;//posición en la que tenemos que mostrar

	$limit = " LIMIT $offset, $records_per_page";//sql que tenemos que adjuntar IMPORTANTE
	//end Numeración de páginas configuración

	//mostrando datos
	$query	= "SELECT * from tabledemo  $limit "; //query para mostrar los datos
	$result =	mysql__query($query);

	while ($row=mysql_fetch_assoc($result))
	{
		echo "mostrar datos ".$row[0];
	}
	?>

Paginación simple:

< ?php
	//paginar numeros
		for ($i = 1; $i <= $total_pages; $i++) {
				echo "$i - ";//imprime link
		}
 ?>

Paginación, con siguiente, anterior, fin, inicio y acortador (por si hay muchas páginas)


	//números de páginas
		$display_pages=10;//cuantas páginas mostramos en caso de que hayan mas que X

		echo "< < Inicio ";//inicio
		if ($page>1) echo " < < Anterior  "; //anterior

		for ($i = $page; $i < = $total_pages && $i<=($page+$display_pages); $i++) {
	        if ($i == $page) echo "$i - ";//no imprimimos link para este elemento
	        else echo "$i - ";//link

	    if (($page+$display_pages)< $total_pages) echo "..."; //como un etcetera...
	    if ($page<$total_pages) echo " Siguiente >>  ";//siguiente
	    echo "Fin >>";//final
	 ?>


Recomendados:
Compartir:
  • Meneame
  • Facebook
  • Twitter
  • Bitacoras.com
  • Live
  • del.icio.us
  • BarraPunto
  • Digg
  • Netvibes
  • Google Bookmarks
  • Wikio
  • StumbleUpon
  • MySpace
  • PDF
  • Print
  • email

Comments (23)

para los demás podeis usar esto: http://neo22s.com/paginator-simple-pagination-for-php/

es de mi otro blog en inglés.

Te das cuenta que si se pueden hacer las cosas mejores . . . en ese link esta todo bien claro, y bien detallado por bloques y lo mejor aun sin ningun error . . .

ahora si puedo deceirte que hiciste muy bien. . .
y muchas gracias por tu excelente aporte . . .

me alegro al menos se haya recuperado la educación.

Siempre es muy fácil criticar, lo dificil es hacer lo que los demás hacen ;)

saludos

Write a comment

Deja un comentario ya! Ir Abajo Ir Arriba
Clasificados Barcelona