Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2009, 05:12
Avatar de aldo1982
aldo1982
 
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
De acuerdo [Apoerte] Paginacion php+mysql

aca dejo una funcion que tengo para paginacion, lo unico que faltaria, que seria bueno si alguien daria una mano es cuando son por ejemplo 2 mil paginas, para que muestre algo asi 1 2 3 4 5 6 .... 2000

aca va la funcion

Código PHP:
function paginacion3($perPage, &$page, &$from$extraVars$table$sqlWhere$title$idField ""$showPages TRUE) {
    
// OJO: $page y $from se pasa por referencia 
    
    
if (!$page)                { $page 1; }    
    if (
$page 1)        { $page 1; }    
    if (
$title)             { $title $title ": "; }
    if (
$extraVars)     { $extraVars "&" $extraVars; }
    if (!
$idField)         { $idField "id";    }
    
    
$from = ($page 1) * $perPage;
    
    
$sql "SELECT count(DISTINCT $idField) as n_registros FROM $table $sqlWhere";
    
$result mysql_query($sql);
    
    if (
$line mysql_fetch_array($result)) {
        
$cuantos $line[n_registros];
        
$pages ceil($cuantos $perPage);

        if (
$page 1) {
            
$previous "<a href=\"" $_SERVER['PHP_SELF']  . "?page=" . ($page 1
                    . 
"$extraVars\"><b>&lt; Anterior</b></a> | ";
            
$desde $perPage * ($page 1) + 1;
        }else{
            
$desde 1;
        }

        if (
$desde == $cuantos OR $cuantos $perPage $desde) {
            
$hasta $cuantos;
        }else{
            
$next " | <a href=\"" $_SERVER['PHP_SELF']  . "?page=" . ($page 1
                    . 
"$extraVars\"><b>Siguiente &gt;</b></a>";
            
$hasta $perPage $page;
        }

        if (
$pages 0) {
            
$header "<div>$previous$title<b>$desde-$hasta</b> de <b>$cuantos</b>$next</div>";
    
            if (
$showPages) {
                
$intermedias "<div>Paginas: ";
                
                for (
$n 1$n <= $pages$n++){
                    if (
$n == $page){
                        
$intermedias .= "$sep<b>$n</b>";
                    }else{
                        
$intermedias .= "$sep<a href=\"" $_SERVER['PHP_SELF'] . "?page=$n$extraVars\">$n</a>";
                    }
                    
$sep " ";
                }
                
$intermedias .= "</div>";
            }
        }
        
//$page = ($page - 1) * $perPage;
        
    
}
    
    
$header .= $intermedias
    return 
$header;

su uso

Código:
<table width="550"  cellpadding="2" cellspacing="1">    
    
    <?
        $perPage = 10;
        $page = $_GET[page];

       $paging = paginacion2($perPage, $page, $from, "", "Tabla", "", "Descripcion Tabla", "id_principal_tabla");

    mysql_query("SET NAMES utf8");
    $sql = "SELECT campo1, campo2 FROM tabla ORDER BY id DESC                    
                    ";
    $result = mysql_query($sql);
    if ($row = mysql_fetch_array($result)) {
        do {
            ?>
            <tr>
                <td align="center"><?=$row[campo1])?></td>
                <td align="center"><?=$row[campo2])?></td>
            </tr>
            <?
        } while($row = mysql_fetch_array($result));
    } else {
        ?>
        <tr>
            <td colspan="2" id="noRows"><b>No se han encontrado registros</b></td>
        </tr>
        <?
    }
    ?>

</table>
<div id="pages"><?=$paging?></div>
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA