Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/11/2011, 10:09
skip77
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Como paginar contenido de tabla ?

Cita:
Iniciado por Kurassier Ver Mensaje
Complicado,en especial de la forma que planteas el problema, si quieres hacer algo asi deberías aprender un poco de SQL, para hacer llamados dinámicos y paginados, como fue el ejemplo de Antonio_España, si generas el contenido de forma manual la que te mencioné es tu única opción.

Saludos!

tarde en responder, pork me mate buscando un codigo que pueda entender, jajja.
Ahora tengo este problema :S.
Consegui este codigo buscando:

- Este para la tabla:

Código PHP:
CREATE TABLE IF NOT EXISTS `page_next_previus` (
`
idint(11NOT NULL auto_increment,
`
titlevarchar(250NOT NULL,
`
contenttext NOT NULL,
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;


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'); 
-Este para el archivo:

Código PHP:
<?php
/*
* autor: Abraham Zenteno Sánchez
* mail:  [email protected]

* 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>';
?>
El codigo lo pude hacer andar sin problemas por suerte , el problema esta cuando toco la variable $rows_for_page, en ese codigo esta como defecto en 1.
Cuando la paso a dos por ejemplo, en la paginacion me muestra :

en la pagina 1, el contenido del registro 1 y 2
en la pagina 2, el contenido del registro 2 y 3
y el 4 nunca aparece.

Y si pongo un numero mas grande es peor el error XD.

Mi idea es que me quede en este caso(con 1 en la variable $rows_for_page):
en la pagina 1, el contenido del registro 1 y 2
en la pagina 2, el contenido del registro 3 y 4

Realmente no se cual es el error, que tendria que cambiar del codigo?

Desde ya muchas gracias !!!!

Última edición por skip77; 23/11/2011 a las 10:21