08/06/2004, 23:58
|
| | Fecha de Ingreso: noviembre-2003 Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 20 años, 6 meses Puntos: 0 | |
Bueno Aqui esta el codigo de paginador para que veas si le he hecho algunos cambios 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 = 10; } 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='inicio.php?enlace&".$_pagi_enlace."pg=".$_pagi_url."'>« Anterior</a> "; } //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> $_pagi_i </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> "; } } 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 »</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. ?>
__________________ °º¤ø,¸¸,ø¤º°`°º¤ø,¸S@M°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo |