Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/06/2006, 10:44
Avatar de seik!
seik!
 
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 17 años, 10 meses
Puntos: 6
el codigo es largo asi k lo divido en dos ;)
1ra parte!
---------------------------------------------------------------------


/**
* Variables que se pueden definir antes de incluir el script vía include():
* ------------------------------------------------------------------------
* $_pagi_sql OBLIGATORIA. Cadena. Debe contener una sentencia sql válida (y sin la cláusula "limit").

* $_pagi_cuantos OPCIONAL. Entero. Cantidad de registros que contendrá como máximo cada página.
Por defecto está en 20.

* $_pagi_nav_num_enlaces OPCIONAL Entero. Cantidad de enlaces a los números de página que se mostrarán como
máximo en la barra de navegación.
Por defecto se muestran todos.

* $_pagi_mostrar_errores OPCIONAL Booleano. Define si se muestran o no los errores de MySQL que se puedan producir.
Por defecto está en "true";

* $_pagi_propagar OPCIONAL Array de cadenas. Contiene los nombres de las variables que se quiere propagar
por el url. Por defecto se propagarán todas las que ya vengan por el url (GET).
* $_pagi_conteo_alternativo OPCIONAL Booleano. Define si se utiliza mysql_num_rows() (true) o COUNT(*) (false).
Por defecto está en false.
* $_pagi_separador OPCIONAL Cadena. Cadena que separa los enlaces numéricos en la barra de navegación entre páginas.
Por defecto se utiliza la cadena " | ".
* $_pagi_nav_estilo OPCIONAL Cadena. Contiene el nombre del estilo CSS para los enlaces de paginación.
Por defecto no se especifica estilo.
* $_pagi_nav_anterior OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página anterior. Puede ser un tag <img>.
Por defecto se utiliza la cadena "&laquo; Anterior".
* $_pagi_nav_siguiente OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag <img>.
Por defecto se utiliza la cadena "Siguiente &raquo;"
--------------------------------------------------------------------------
*/


/*
* Verificación de los parámetros obligatorios y opcionales.
*------------------------------------------------------------------------
*/
if(empty($_pagi_sql)){
// Si no se definió $_pagi_sql... grave error!
// Este error se muestra sí o sí (ya que no es un error de mysql)
die("<b>Error Paginator : </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(!isset($_pagi_mostrar_errores)){
// Si no se ha elegido si se mostrará o no errores
// $_pagi_errores será por defecto true. (se muestran los errores)
$_pagi_mostrar_errores = true;
}

if(!isset($_pagi_conteo_alternativo)){
// Si no se ha elegido el tipo de conteo
// Se realiza el conteo dese mySQL con COUNT(*)
$_pagi_conteo_alternativo = false;
}

if(!isset($_pagi_separador)){
// Si no se ha elegido un separador
// Se toma el separador por defecto.
$_pagi_separador = " | ";
}

if(isset($_pagi_nav_estilo)){
// Si se ha definido un estilo para los enlaces, se genera el atributo "class" para el enlace
$_pagi_nav_estilo_mod = "class=\"$_pagi_nav_estilo\"";
}else{
// Si no, se utiliza una cadena vacía.
$_pagi_nav_estilo_mod = "";
}

if(!isset($_pagi_nav_anterior)){
// Si no se ha elegido una cadena para el enlace "siguiente"
// Se toma la cadena por defecto.
$_pagi_nav_anterior = "&laquo; Anterior";
}

if(!isset($_pagi_nav_siguiente)){
// Si no se ha elegido una cadena para el enlace "siguiente"
// Se toma la cadena por defecto.
$_pagi_nav_siguiente = "Siguiente &raquo;";
}

//------------------------------------------------------------------------


/*
* Establecimiento de la página actual.
*------------------------------------------------------------------------
*/
if (empty($_GET['_pagi_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['_pagi_pg'];
}
//------------------------------------------------------------------------


/*
* Establecimiento del número de páginas y del total de registros.
*------------------------------------------------------------------------
*/
// Contamos el total de registros en la BD (para saber cuántas páginas serán)
// La forma de hacer ese conteo dependerá de la variable $_pagi_conteo_alternativo
if($_pagi_conteo_alternativo == false){
$_pagi_sqlConta = eregi_replace("select (.*) from", "SELECT COUNT(*) FROM", $_pagi_sql);
$_pagi_result2 = mysql_query($_pagi_sqlConta);
// Si ocurrió error y mostrar errores está activado
if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
die (" Error en la consulta de conteo de registros: $_pagi_sqlConta. Mysql dijo: <b>".mysql_error()."</b>");
}
$_pagi_totalReg = mysql_result($_pagi_result2,0,0);//total de registros
}else{
$_pagi_result3 = mysql_query($_pagi_sql);
// Si ocurrió error y mostrar errores está activado
if($_pagi_result3 == false && $_pagi_mostrar_errores == true){
die (" Error en la consulta de conteo alternativo de registros: $_pagi_sql. Mysql dijo: <b>".mysql_error()."</b>");
}
$_pagi_totalReg = mysql_num_rows($_pagi_result3);
}
// Calculamos el número de páginas (saldrá un decimal)
// con ceil() redondeamos y $_pagi_totalPags será el número total (entero) de páginas que tendremos
$_pagi_totalPags = ceil($_pagi_totalReg / $_pagi_cuantos);