Paginacion Anterior Siguiente PHP MYSQL

Que tal ahora escribire un ejemplo de paginación del la forma ( Primero Anterior 2 de 4 Siguiente Ultimo), es muy útili este ejemplo para paginar imagenes, paginas que se yo, para ello el ejemplo estara basado en php y mysql,bueno aqui todo lo necesario para que tengas tu propia paginación saludos. Primero crea una base de datos con la ayuda de tu phpMyAdmin, de nombre examphp, despues importa la tabla que abajo se muestra.
CREATE TABLE IF NOT EXISTS `page_next_previus` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(250) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


INSERT INTO `page_next_previus` (`id`, `title`, `content`) VALUES
(1, 'Titulo 1', 'ESTO ES UN EJEMPLO DEL CONTENIDO 1'),
(2, 'Titulo 2', 'ESTO ES UN EJEMPLO DEL CONTENIDO 2'),
(3, 'Titulo 3', 'ESTO ES UN EJEMPLO DEL CONTENIDO 3'),
(4, 'Titulo 4', 'ESTO ES UN EJEMPLO DEL CONTENIDO 4');

Ahora Aquí el archivo php (pag_next.php)

<?php
/*
* autor: Abraham Zenteno Sánchez
* mail:  abzenteno@gmail.com

* page: http://abzenteno.blogspot.com
*/
$host = "localhost";
$user = "";
$passwd = "";
$database = "examphp";

//provando conexion con mysql
$db = mysql_connect($host,$user,$passwd);

//provando conexion con la base de datos
@mysql_select_db($database,$db);

$rows_for_page = 1; //numero de registros a mostra
$sql = "SELECT * FROM page_next_previus";
$result = mysql_query($sql, $db);
//total de registros existentes en la tabla
$total_records = @mysql_num_rows($result);

//total de paginas
$pages = ceil($total_records / $rows_for_page);

@mysql_free_result($result);

//si no existe por GET la var screen coloca por defecto el valor de 0
if (!isset($_GET['screen']))
  $screen = 0;
//de lo contrario asigna el valor por get a $position
else
  $position = (int)$_GET['screen'];

//comenzando el paginado
$start = $screen * $rows_per_page;
//consulta ala db por limites
$sql = "SELECT * FROM page_next_previus order by id ASC LIMIT ".$position.",".$rows_for_page;
//ejecuta el query
$result = mysql_query($sql, $db);
//resultados de la consulta (total)
$rows = @mysql_num_rows($result);

//imprime registros
for ($i = 0; $i < $rows; $i++) {
  $title = mysql_result($result,$i,1);
  $content = mysql_result($result,$i,2);
  echo "<h1> $title </h1>
      <br>
      <p>$content</p><br>";
}
//comienza el paginado
echo '<p><hr></p>
<div style="width:100%; text-align:center;">';
//si posicion es mayor o igual a 1 quiere decir que muestre la parte Primero y Anterior de la paginación
if ($position >= 1) {
  $url = "pag_next.php?screen=0";
  echo "<a href=\"$url\">Primero</a>\n";
  //para que el preius no termine con valor 0
   $url = "pag_next.php?screen=" .($position-1);
  echo "<a href=\"$url\">Anterior</a>\n";
}
//sirve para expandir el prollecto para poder paginar de la manera (Primero Anterior | 0 | 1 | 2 | 3 | Siguiente Ultimo)
/*for ($i = 0; $i < $pages; $i++) {
  $url = "pag_next.php?screen=" . $i;
  echo " | <a href=\"$url\">$i</a> | ";
}*/

//muestra total de resultados 1 de N
echo '<strong>'.($position+1).' de '.$pages.' </strong>';

//si position es menor a el valor entre los parentesis muestra la parte (Siguiente Ultimo)
if ($position < ($pages-1)) {
  $url = "pag_next.php?screen=" . ($position+1);
  echo "<a href=\"$url\">Siguiente</a>\n";
  $url = "pag_next.php?screen=" . ($pages-1);
  echo "<a href=\"$url\">Ultimo</a>\n";
}
echo '</div>';
?>

De tal manera aquí la imagen del ejemplo:

Compártelo

También te puede interesar...

Comentarios

  • Avatar_341_thumb

    seeal - 01/08/2009 02:02:35

    muy util gracias

Escribe un comentario

Tienes que estar registrado para poder dejar comentarios.
Accede a tu cuenta o regístrate en NotasWeb.com.
Avatar_102 kraxbox
12º en el Ranking


Artículos más vistos del usuario

Últimos artículos del usuario