Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/02/2009, 16:38
Avatar de SCY-FOX
SCY-FOX
 
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Tutorial: Paginador de resultados con consultas dinámicas.

Todo está mejorado con CSS.

Código PHP:
<!--PAGINADOR-->
        <div id="paginador">
            <!-- INICIO Cantidad de Paginas-->
<table width="100%" height="22"  border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
  <td align="right" valign="middle" class="cabecera"><? 
//--Estilo de Paginacion Sepsy
$intervalo ceil ((10/2)-1); // el ceil del numero de paginas a mostrar/2 - 1 
        // Calculamos desde qué número de página se mostrará 
    
$desde $page $intervalo
    
// Calculamos hasta qué número de página se mostrará 
    
$hasta $page $intervalo
        if(
$desde 1){ 
        
// Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.  
        
$hasta -= ($desde 1); 
        
// Establecemos $_pagi_nav_desde como 1. 
        
$desde 1
    } 
   if(
$hasta $total_pages){ 
        
// Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar. 
        
$desde -= ($hasta $total_pages); 
        
// Establecemos $_pagi_nav_hasta como el total de páginas. 
        
$hasta $total_pages
        
// Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido. 
        
if($desde 1){ 
            
$desde 1
        }  

//FIN Estilo Paginado Sepsy 
    
    
echo "&laquo; Pag. ".$page." de ".$total_pages." &raquo;";
    
//Primera Página (INICIO)
if ($total_pages != 1)
{
    echo 
" - <a id ='primero' href=".$_SERVER['PHP_SELF']."?page=1&max=0&ti=$ti&mes=$mes></a>&nbsp;\n";
}
// Build Previous Links
if($page 1)

    
$prev = ($page 1); 
    echo 
"<a id='anterior' title='Anterior' href=".$_SERVER['PHP_SELF']."?page=$prev&max=$max&ti=$ti&mes=$mes></a>&nbsp;\n"
}
//for($i=1;$i<$total_pages+1;$i++)
for ($i=$desde$i<=$hasta$i++) { 
$max    =    $max_results * ($i-1);
    if (
$i%25 == 0) echo "<br>";
    if((
$page) == $i){
        echo 
"<span class='pagination'>&nbsp;<b> $i </b>&nbsp;</span>"
        }else{
            echo 
"&nbsp;<a class='pagination' href=".$_SERVER['PHP_SELF']."?page=$i&max=$max&ti=$ti&mes=$mes>$i</a>&nbsp;\n"
            }

// Build Next Link 
//Flechita para avanzar
if($page $total_pages){ 
    
$next = ($page 1); 
    echo 
"<a id='siguiente' title='Siguiente' href=".$_SERVER['PHP_SELF']."?page=$next&max=$max&ti=$ti&mes=$mes></a>\n"
}  
//Ultima Página
if($total_pages != 1)
{
$max_fin    =    $max_results * ($total_pages -1);
echo 
"<a id='ultimo' href=".$_SERVER['PHP_SELF']."?page=$total_pages&max=$max_fin&ti=$ti&mes=$mes></a>\n";
}

?></td>
            </tr>
          </table>
<br />
<!-- FIN de Cantidad de Páginas--></div>
        <!--END PAGINADOR-->
el CSS es el siguiente:

Código:
/*PAGINADOR*/
#paginador{text-align: right; margin: 0px; padding: 5px; font-size: 10px; color: #000;}
#paginador a:link, #paginador a:visited{color: #000; text-decoration: none; margin: 0px 3px;}
#paginador a:hover, #paginador a:active{color: #000; text-decoration: underline;}
#paginador #anterior{background: url(../images/ic_anterior.gif) no-repeat 0px 2px; padding: 0px 0px 0px 20px;}
#paginador #siguiente{
	background: url(../images/ic_siguiente.gif) no-repeat 0px 2px;
	padding: 0px 0px 0px 20px;
}
#paginador #primero {
	background-image: url(../images/flecha.png);
	background-repeat: no-repeat;
	background-position: 0px 1px;
	padding-top: 0px;
	padding-right: 0px;
	padding-bottom: 0px;
	padding-left: 20px;
}
#paginador #ultimo {
	background-image: url(../images/flecha-copy.png);
	background-repeat: no-repeat;
	background-position: 0px 1px;
	padding-top: 0px;
	padding-right: 0px;
	padding-bottom: 0px;
	padding-left: 20px;
}
Y las imágenes son las siguientes:

h**p://img162.imageshack.us/img162/7053/icanterioryx4.gif
h**p://img162.imageshack.us/img162/8997/icanteriorfinpb1.jpg
h**p://img162.imageshack.us/img162/6857/icsiguientecx5.gif
h**p://img27.imageshack.us/img27/1688/flechacopydd8.png

Listo.

Muchas gracias otra vez, Foros del Web.
Espero que alguien le sea de utilidad este tutorial.

Silla!


Scyfox

Última edición por SCY-FOX; 08/02/2009 a las 16:43 Razón: cambie el tag cade por php