[SOLUCIONADO] Como hacer un pagination con la base de datos

Iniciado por juliianc95, Noviembre 29, 2013, 02:20:21 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 29, 2013, 02:20:21 PM Ultima modificación: Agosto 20, 2014, 08:54:16 PM por Expermicid
buenas amigos. tengo una duda, es como hago un pagination.
en mi web tengo mas de mil archivos en la base de datos la idea es que salga asi

prev,1, 2, 3,4,5,next
la idea es que mientras valla por el dos ya no aparesca el uno ni el 5 sino que valla cambiando solo.
gracias de antemano.

bueno, acabo de hacerte un paginador medio feo pero paginador en fin, tienes que descargar estos No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
y luego poner este código donde quieras generar el paginador

Código: php
                include('InterfacePaginator.php');
                include('ComponentPaginator');
                // aquí haces una consulta SQL
                $cantidad = 800;
                $paginator = new ComponentPaginator($cantidad, $_GET['actual']);
$paginado = $paginator->get_paginado();
for($i = 0; $i<count($paginado); $i++)
{

if($paginado[$i]['id']>0)
{
if($paginado[$i]['important']==false)
echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'">'.$paginado[$i]['text'].'</a> ';
else
echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'" style="color:red">'.$paginado[$i]['text'].'</a> ';
}
else
echo $paginado[$i]['text'].' ';
}


donde dice aquí haces una consulta SQL tienes que hacer un "SELECT count(campo) FROM tabla"
y luego poner $cantidad = $valor['count(campo)'];

la idea es que pongas en la variable $cantidad la cantidad de registros que tienes, está diseñado para que muestres 15 registros de la tabla por página.

el código que genera queda así:



esa fue la prueba que hice y anda como tiene que andar.-

Saludos!

Noviembre 30, 2013, 12:22:07 AM #2 Ultima modificación: Noviembre 30, 2013, 12:28:31 AM por juliianc95
amigo me dan estos errores:

CitarWarning: include(ComponentPaginator) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\practica\index.php on line 211

Warning: include() [function.include]: Failed opening 'ComponentPaginator' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\practica\index.php on line 211

Fatal error: Class 'ComponentPaginator' not found in C:\AppServ\www\practica\index.php on line 220

y el codigo php que puse fue este:
Citar<?php
include('InterfacePaginator.php');
include('ComponentPaginator');
// aquí haces una consulta SQL
$connect=mysql_connect("localhost","root","1851172");
mysql_select_db("pelisbot");
$query=mysql_query("SELECT count(40) FROM pelisbot");
while($fila=mysql_fetch_array($query)){
   
   }
$cantidad = $valor['count(40)'];
$paginator = new ComponentPaginator($cantidad, $_GET['actual']);
$paginado = $paginator->get_paginado();
for($i = 0; $i<count($paginado); $i++){
   if($paginado[$i]['id']>0){
       if($paginado[$i]['important']==false)
           echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'">'.$paginado[$i]['text'].'</a> ';
        else
            echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'" style="color:red">'.$paginado[$i]['text'].'</a> ';}
      else
            echo $paginado[$i]['text'].' ';}
?>
que tengo mal?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
amigo me dan estos errores:

CitarWarning: include(ComponentPaginator) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\practica\index.php on line 211

Warning: include() [function.include]: Failed opening 'ComponentPaginator' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\practica\index.php on line 211

Fatal error: Class 'ComponentPaginator' not found in C:\AppServ\www\practica\index.php on line 220

y el codigo php que puse fue este:
Citar<?php
include('InterfacePaginator.php');
include('ComponentPaginator');
// aquí haces una consulta SQL
$connect=mysql_connect("localhost","root","1851172");
mysql_select_db("pelisbot");
$query=mysql_query("SELECT count(40) FROM pelisbot");
while($fila=mysql_fetch_array($query)){
   
   }
$cantidad = $valor['count(40)'];
$paginator = new ComponentPaginator($cantidad, $_GET['actual']);
$paginado = $paginator->get_paginado();
for($i = 0; $i<count($paginado); $i++){
   if($paginado[$i]['id']>0){
       if($paginado[$i]['important']==false)
           echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'">'.$paginado[$i]['text'].'</a> ';
        else
            echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'" style="color:red">'.$paginado[$i]['text'].'</a> ';}
      else
            echo $paginado[$i]['text'].' ';}
?>
que tengo mal?

primero la ubicación del archivo ComponentPaginador está mal, debes cambiarla o poner los archivos en el mismo directorio que tienes este código php, segundo el código no necesita el while:

Citar<?php
include('InterfacePaginator.php');
include('ComponentPaginator');
// aquí haces una consulta SQL
$connect=mysql_connect("localhost","root","1851172");
mysql_select_db("pelisbot");
$query=mysql_query("SELECT count(CAMPO) FROM pelisbot");
$fila=mysql_fetch_array($query)
$cantidad = $fila['count(CAMPO)'];
$paginator = new ComponentPaginator($cantidad, $_GET['actual']);
$paginado = $paginator->get_paginado();
for($i = 0; $i<count($paginado); $i++){
   if($paginado[$i]['id']>0){
       if($paginado[$i]['important']==false)
           echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'">'.$paginado[$i]['text'].'</a> ';
        else
            echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'" style="color:red">'.$paginado[$i]['text'].'</a> ';}
      else
            echo $paginado[$i]['text'].' ';}
?>

si revisas cambié 40 por campo y $value por $fila.

saludos!

me da el siguiente error ahora:
CitarParse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\practica\index.php on line 124

y en el dream weaver me señala esta linea:
Citar$cantidad = $fila['count(CAMPO)'];
que haria hay?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
me da el siguiente error ahora:
CitarParse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\practica\index.php on line 124

y en el dream weaver me señala esta linea:
Citar$cantidad = $fila['count(CAMPO)'];
que haria hay?

me comí un punto y coma en la linea de arriba a esa

y tenes que cambiar CAMPO por un campo de la tabla, como el id o algo así.

saludos!

hmm sigue el error esta ves es este:
Citar
Parse error: syntax error, unexpected T_USE, expecting T_FUNCTION in C:\AppServ\www\practica\libreria\ComponentPaginator.php on line 23
hice lo siguiente:

agregue un id con auto_increment a la base de datos. de manera que se sume y todo eso.
Y en el codigo php hice lo siguiente:
Citar
<?php
include('libreria/InterfacePaginator.php');
include('libreria/ComponentPaginator.php');
// aquí haces una consulta SQL
$connect=mysql_connect("localhost","root","1851172");
mysql_select_db("pelisbot");
$query=mysql_query("SELECT count(id) FROM pelisbot");
$fila=mysql_fetch_array($query);
$cantidad = $fila['count(id)'];
$paginator = new ComponentPaginator($cantidad, $_GET['actual']);
$paginado = $paginator->get_paginado();
for($i = 0; $i<count($paginado); $i++){
   if($paginado[$i]['id']>0){
       if($paginado[$i]['important']==false)
           echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'">'.$paginado[$i]['text'].'</a> ';
        else
            echo '<a href="/pagina.php?actual='.$paginado[$i]['id'].'" style="color:red">'.$paginado[$i]['text'].'</a> ';}
      else
            echo $paginado[$i]['text'].' ';}
?>