Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/11/2003, 08:31
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Me pareció muy didáctico y fácil este script de dooky para paginar. Sobre los errores de los que se habla arriba. Hice algunas correciones.

Éste sería el código final donde he corregido lo siguiente:
-Funciona con register_globals en OFF.
-Corregido el error por el cual se mostraba una página vacía al final cuando era exacto el número de registros dividido por la cantidad de registros a mostrar por página. Es decir, cuando $total_records / $cantidad = entero. Error detectado por Zertiko y corregido por josemi en: http://www.forosdelweb.com/s/msg143725.html
-Uso de $_SERVER['PHP_SELF'], en lugar del nombre del script para facilitar la adaptación con cambios en menos líneas.
-Uso de mysql_query() en lugar de mysql_db_query(), ya que no era necesario al haberse seleccionado la bd con mysql_select_bd().
Código PHP:
<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF> 
<?
// Datos de conexión a la base
$servidor="localhost";
$usuario="tu_user";
$password="tu_password";
$base="tu_base";
$con mysql_connect($servidor,$usuario,$password) or die (mysql_error());
mysql_select_db($base,$con) or die (mysql_error());

if (!isset(
$_GET['pg'])){
    
$pg 0// $pg es la pagina actual
}else{
    
$pg=$_GET['pg'];
}
$cantidad=5// cantidad de resultados por página
$inicial $pg $cantidad;

$pegar "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$cad mysql_query($pegar) or die (mysql_error());

$contar "SELECT * FROM tabla ORDER BY titulo"
$contarokmysql_query($contar);
$total_records mysql_num_rows($contarok);
$pages ceil($total_records $cantidad);

// Imprimiendo los resultados
while($array mysql_fetch_array($cad)) {
    echo 
$array['titulo']."<br>";


// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p>";
if (
$pg <> 0){
    
$url $pg 1;
    echo 
"<a href='paginar.php?pg=".$url."'>&laquo; Anterior</a>&nbsp;";
}else {
    echo 
" ";
}

for (
$i 0$i<$pages$i++) {
    if (
$i == $pg) {
        echo 
"<font face=Arial size=2 color=ff0000><b>&nbsp;$i&nbsp;</b></font>";
    }else{
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pg=".$i."'>".$i."</a>&nbsp;";
    }
}

if (
$pg $pages-1) {
    
$url $pg 1;
    echo 
"<a href='".$_SERVER['PHP_SELF']."?pg=".$url."'>Siguiente &raquo;</a>";
}else {
    echo 
" ";
}
echo 
"</p>";
?>
</body>
</html>
Saludos

Última edición por jpinedo; 09/11/2003 a las 09:10