Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/04/2004, 09:02
Avatar de pereztroff
pereztroff
 
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 21 años, 10 meses
Puntos: 5
pues tengo el archivo principal este codigo:
Código PHP:
<?
            
// Conectamos a la Base de Datos
            
include('incluir/conexion.php');
            
$_pagi_sql mysql_query("SELECT * FROM tuto_html");
            
$_pagi_cuantos 10;

            include(
"paginator.inc.php");

            while(
$row mysql_fetch_array($_pagi_result)){
            echo 
$row['titulo']."<br />";
                          }
            echo
"<p>".$_pagi_navegacion."</p>";

            
?>
y en el paginator que lo puse con un include:

Código PHP:

<?php
/*
**    Paginator 1.1
**    Paginación de resultados de consultas MySql
**
**    Nombre de archivo    :
**        paginator.inc.php
**    Autor    :
**        Jorge Pinedo Rosas (jpinedo)    <[email protected]>
**        Con la colaboración de los usuarios del foro de PHP de [url]www.forosdelweb.com[/url]
**        Especialmente de dooky que posteó el código en el que se basa este script.    
**
**    Versión 1.0    30/11/2003    :    -Versión inicial.
**    Versión 1.1    12/01/2003    :    -Se agregó la propagación de las variables que llegan al script vía url ($_GET)
**                                  en los enlaces de navegación por las páginas.
**                                -Se optimizó el conteo del total de registros utilizando el COUNT(*) de MySql.
**
**    Descripción :
**        Devuelve el resultado de una consulta sql por páginas, así como los enlaces de navegación respectivos.
**        Este script ha sido pensado con fines didácticos, por eso la gran cantidad de comentarios.    
**
**    Licencia : 
**        GPL con las siguientes extensiones:
**             *Uselo con el fin que quiera (personal o lucrativo).
**            *Si encuentra el código de utilidad y lo usa, mandeme un mail si lo desea.
**            *Si mejora el código o encuentra errores, hagamelo saber al mail indicado.
**
**    Documentación y ejemplo de uso:
**        [url]http://depiura.webcindario.com/jpinedo/scripts/doc-paginator.php[/url]
**-----------------------------------------------------------------------------------------------------------*/
  
//Antes de incluir este script vía include() se debe haber definido una variable $_pagi_sql
//que contenga una sentencia sql válida

if(empty($_pagi_sql)){
    
//Si no se definió $_pagi_sql... error!
    
die("<b>Error paginación : </b>No se ha definido la variable \$_pagi_sql");
}

if(empty(
$_pagi_cuantos)){
    
//Si no se ha especificado la cantidad de registros por página
    //$_pagi_cuantos será por defecto 20
    
$_pagi_cuantos 20;
}

if (empty(
$_GET['pg'])){
    
//Si no se ha hecho click a ninguna página específica
    //O sea si es la primera vez que se ejecuta el script
    //$_pagi_actual es la pagina actual-->será por defecto la primera.
    
$_pagi_actual 1;
}else{
    
//Si se "pidió" una página específica:
    //La página actual será la que se pidió.
    
$_pagi_actual $_GET['pg'];
}

//Contamos el total de registros en la BD (para saber cuántas páginas serán)
$_pagi_sqlConta eregi_replace("select (.*) from""SELECT COUNT(*) FROM"$_pagi_sql);
$_pagi_result2 mysql_query($_pagi_sqlConta) or die ("Error en la consulta de conteo de registros. Mysql dijo: <b>".mysql_error()."</b>");
$_pagi_totalReg mysql_result($_pagi_result2,0,0);//total de registros

//Calculamos el número de páginas (saldrá un decimal)
//con ceil() redondeamos y $_pagi_totyalPags será el número total (entero) de páginas que tendremos
$_pagi_totalPags ceil($_pagi_totalReg $_pagi_cuantos);


//Creamos la navegación a páginas específicas. Una línea tipo: <<anterior 1 2 3 4 siguiente>>

//La idea es pasar también en los enlaces las variables hayan llegado por url.
$_pagi_enlace $_SERVER['PHP_SELF'];
$_pagi_query_string "?";
if(isset(
$_GET)){
    
//Si ya se han pasado variables por url, escribimos el query string concatenando
    //los elementos del array $_GET excepto la variable $_GET['pg'] si es que existe.
    
$_pagi_variables $_GET;
    foreach(
$_pagi_variables as $_pagi_clave => $_pagi_valor){
        if(
$_pagi_clave != 'pg'){
            
$_pagi_query_string .= $_pagi_clave."=".$_pagi_valor."&";
        }
    }
}

//Añadimos el query string a la url.
$_pagi_enlace .= $_pagi_query_string;

//La variable $_pagi_navegacion contendrá los enlaces a las páginas.
$_pagi_navegacion '';

if (
$_pagi_actual != 1){
    
//Si no estamos en la página 1. Ponemos el enlace "anterior"
    
$_pagi_url $_pagi_actual 1;//será el número de página al que enlazamos
    
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_url."'>&laquo; Anterior</a>&nbsp;";
}

//Enlaces a números de página:
for ($_pagi_i 1$_pagi_i<=$_pagi_totalPags$_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags)
    
if ($_pagi_i == $_pagi_actual) {
        
//Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita.
        
$_pagi_navegacion .= "<b>&nbsp;$_pagi_i&nbsp;</b>";
    }else{
        
//Si es cualquier otro. Se escibe el enlace a dicho número de página.
        
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_i."'>".$_pagi_i."</a>&nbsp;";
    }
}

if (
$_pagi_actual $_pagi_totalPags){
    
//Si no estamos en la última página. Ponemos el enlace "Siguiente"
    
$_pagi_url $_pagi_actual 1;//será el número de página al que enlazamos
    
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_url."'>Siguiente &raquo;</a>";
}
//Hasta acá hemos completado la "barra de navegación"

//Calculamos desde qué registro se mostrará en esta página
//Recordemos que el conteo empieza desde CERO.
$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;

//Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial
$_pagi_sqlLim $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos";
$_pagi_result mysql_query($_pagi_sqlLim) or die ("Error en la consulta limitada. Mysql dijo: <b>".mysql_error()."</b>");

//A partir de aquí quedan disponibles dos variables:
//$_pagi_navegacion : que contiene los enlaces para navegar por las páginas
//$_pagi_result : que contiene el id del resultado de la consulta a la BD para los registros de la página actual.
?>