Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/10/2003, 13:37
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

El "truco" es cambiar dinamicamente (que bien suena) los valores de inicion y final del bucle for.

Mira, primero modificamos un poco tu codigo, pero para que siga haciendo lo mismo:
Código PHP:
$inicio=0;
$final=$pages+1;
for (
$i $inicio$i<$final$i++) {

if (
$i == $pg) {

echo 
"<font face=verdana size=1 color=ff0000><b>&nbsp;$i&nbsp;</b></font>";

}

else {

echo 
"<font face=verdana size=1 color=ff0000><a href='paginar.php?pg=".$i."'>".$i."</a>&nbsp;";

}


Como ves, solo he creado 2 variables, las he dado un valor fijo, y las he sustituido en el for. Sigue paginando como antes.

Pero empecemos a jugar con esas variables. ¿Que pasa si ponemos :
Código PHP:
$inicio=$pg - ($pg 10);
if (
$inicio<0) {
  
$inicio=0;
}
$final=$inicio+10;
if (
$final > ($pages+1)) {
  
$final=$pages+1;

Pruebalo. Y juega con esos dos valores, $inicio y $final. Los calculas en funcion de $pg, controlando asi los links que muestras.

Otra cosa, tu queja es que aparecia la barra de desplazamiento horizontal. Si no te importa agrandarlo en vertical, puedes poner los links en varias lineas (he visto galerias de imagenes de mas de cien paginas que lo ponian asi). Para ello solo tendrias que añadir un salto de linea detras del decimo indice:
Código PHP:
for ($i 0$i<($pages 1); $i++) {
if ((
$i 10)==9) {  // nueve porque es 0 - 9
  
echo '<br>';
}

if (
$i == $pg) {

echo 
"<font face=verdana size=1 color=ff0000><b>&nbsp;$i&nbsp;</b></font>";

}

else {

echo 
"<font face=verdana size=1 color=ff0000><a href='paginar.php?pg=".$i."'>".$i."</a>&nbsp;";

}


Saludos.

PD: Por si no lo sabes el % es el operador modulo, que devuelve el resto de la division entera del primer operando entre el segundo.
__________________
Josemi

Aprendiz de mucho, maestro de poco.