Guest User

Untitled

a guest
May 30th, 2010
158
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /*
  4.  
  5. **----------------------------No Borrar esta sección -------------------------
  6.  
  7. ** Paginator
  8.  
  9. ** Paginación de resultados de consultas a MySql con PHP
  10.  
  11. **
  12.  
  13. ** Versión 1.6.3
  14.  
  15. **
  16.  
  17. ** Nombre de archivo :
  18.  
  19. ** paginator.inc.php
  20.  
  21. **
  22.  
  23. ** Autor :
  24.  
  25. ** Jorge Pinedo Rosas (jpinedo) <jorpinedo@yahoo.es>
  26.  
  27. ** Con la colaboración de los usuarios del foro de PHP de www.forosdelweb.com
  28.  
  29. ** Especialmente de dooky que posteó el código en el que se basa este script.
  30.  
  31. **
  32.  
  33. ** Descripción :
  34.  
  35. ** Devuelve el resultado de una consulta sql por páginas, así como los enlaces de navegación respectivos.
  36.  
  37. ** Este script ha sido pensado con fines didácticos, por eso la gran cantidad de comentarios.
  38.  
  39. **
  40.  
  41. ** Licencia :
  42.  
  43. ** GPL con las siguientes extensiones:
  44.  
  45. ** *Uselo con el fin que quiera (personal o lucrativo).
  46.  
  47. ** *Si encuentra el código de utilidad y lo usa, mandeme un mail si lo desea o deje un comentario en la página
  48.  
  49. ** de documentación.
  50.  
  51. ** *Si mejora el código o encuentra errores, hagamelo saber al mail indicado o deje un comentario en la página
  52.  
  53. ** de documentación.
  54.  
  55. **
  56.  
  57. ** Documentación y ejemplo de uso:
  58.  
  59. ** http://jpinedo.webcindario.com
  60.  
  61. **----------------------------------------------------------------------*/
  62.  
  63.  
  64.  
  65. /*----------------------------------------------------------------------
  66.  
  67. ** Historial:
  68.  
  69. **
  70.  
  71. ** Versión 1.0.0 (30/11/2003): -Versión inicial.
  72.  
  73. ** Versión 1.1.0 (12/01/2004): -Se agregó la propagación de las variables que llegan al script vía url ($_GET)
  74.  
  75. ** en los enlaces de navegación por las páginas.
  76.  
  77. ** -Se optimizó el conteo del total de registros utilizando el COUNT(*) de MySql.
  78.  
  79. ** Versión 1.3.0 (10/08/2004): -Se agregó la opción de limitar el número enlaces que se mostrarán en la barra
  80.  
  81. ** de navegación. Gracias a la recomendación de Jorge Camargo (andinistas)
  82.  
  83. ** -Se agregó la opción de elegir si se quiere mostrar los mensajes de error de mysql.
  84.  
  85. ** -Se agregó la generación de información de la página actual en una cadena que contiene
  86.  
  87. ** el total de registros de la consulta y el primer y último registro de la página actual.
  88.  
  89. ** Versión 1.4.0 (12/08/2004): -Se agregó la opción de elegir qué variables se quiere propagar por url. Se ha utilizado
  90.  
  91. ** la misma forma de hacerlo que utiliza la Clase Paginado de webstudio.
  92.  
  93. ** (http://www.forosdelweb.com/showthread.php?t=65528). Gracias a la acalmación popular :)
  94.  
  95. ** Versión 1.4.1 (06/09/2004): -Corregido el bug en la propagación de variables por GET al renombrar la variable
  96.  
  97. ** "pg" por "_pagi_pg". Esto sólo ocurre en la versión 1.4. Gracias a jean pierre m. por
  98.  
  99. ** reportar el bug.
  100.  
  101. ** Versión 1.5.0 (03/11/2004): -Se agregó la opción de elegir si se hace el conteo desde mySQL (COUNT(*)) o desde PHP (mysql_num_rows()).
  102.  
  103. ** Esta es una de las modificaciones más importantes porque gracias a esto, ahora el script funciona para
  104.  
  105. ** cualquier tipo de consulta, corrigiendo una de sus principales limitaciones. Gracias a César (CDs) por
  106.  
  107. ** sus ganas de colaborar y su paciencia.
  108.  
  109. ** Versión 1.5.1 (16/11/2004): -Se cambió el nombre de las variables $desde y $hasta por $_pagi_desde y $_pagi_hasta para mantener
  110.  
  111. ** uniformidad y evitar conflictos.
  112.  
  113. ** Versión 1.5.2 (15/02/2005): -Se cambió preventivamente el uso del array $GLOBALS por el array $_REQUEST con la intención de que
  114.  
  115. ** funcione con la directiva register globals en Off. Gracias a Lorena Casas por su colaboración en la detección de
  116.  
  117. ** este bug y en las pruebas.
  118.  
  119. ** Versión 1.6.0 (08/03/2005): -Se reestructuró toda la parte de propagación reincluyendo el array $GLOBALS para poder propagar variables
  120.  
  121. ** generadas en el ámbito del script.
  122.  
  123. ** -Se incluyó la opción de elegir un estilo CSS para los enlaces de la barra de navegación.
  124.  
  125. ** -Se incluyó la opción de personalizar los enlaces a la página anterior y a la siguiente. (Inspirado en la clase Paginador de WebStudio)
  126.  
  127. ** Versión 1.6.1 (07/05/2005): -Corregido el bug que multiplicaba la variable _pagi_pg en el URL cuando se propaga automáticamente
  128.  
  129. ** el array $_GET.
  130.  
  131. ** Versión 1.6.2 (21/10/2005): -Se incluyeron los enlaces a la página primera y a la última.
  132.  
  133. ** -Se incluyó la opción de personalizar los enlaces a la página primera y a la última.
  134.  
  135. ** Versión 1.6.3 (22/02/2006): -Corregida la expresión regular para que reconozca los saltos de línea y tabulaciones como espacio en blanco.
  136.  
  137. ** Gracias a El_Condor en forosdelweb por reportar el comportamiento indeseado.
  138.  
  139. **
  140.  
  141. **-----------------------------------------------------------------------------------------------------------*/
  142.  
  143.  
  144.  
  145.  
  146.  
  147. /**
  148.  
  149. * Variables que se pueden definir antes de incluir el script vía include():
  150.  
  151. * ------------------------------------------------------------------------
  152.  
  153. * $_pagi_sql OBLIGATORIA. Cadena. Debe contener una sentencia sql válida (y sin la cláusula "limit").
  154.  
  155.  
  156.  
  157. * $_pagi_cuantos OPCIONAL. Entero. Cantidad de registros que contendrá como máximo cada página.
  158.  
  159. Por defecto está en 20.
  160.  
  161.  
  162.  
  163. * $_pagi_nav_num_enlaces OPCIONAL Entero. Cantidad de enlaces a los números de página que se mostrarán como
  164.  
  165. máximo en la barra de navegación.
  166.  
  167. Por defecto se muestran todos.
  168.  
  169.  
  170.  
  171. * $_pagi_mostrar_errores OPCIONAL Booleano. Define si se muestran o no los errores de MySQL que se puedan producir.
  172.  
  173. Por defecto está en "true";
  174.  
  175.  
  176.  
  177. * $_pagi_propagar OPCIONAL Array de cadenas. Contiene los nombres de las variables que se quiere propagar
  178.  
  179. por el url. Por defecto se propagarán todas las que ya vengan por el url (GET).
  180.  
  181. * $_pagi_conteo_alternativo OPCIONAL Booleano. Define si se utiliza mysql_num_rows() (true) o COUNT(*) (false).
  182.  
  183. Por defecto está en false.
  184.  
  185. * $_pagi_separador OPCIONAL Cadena. Cadena que separa los enlaces numéricos en la barra de navegación entre páginas.
  186.  
  187. Por defecto se utiliza la cadena " | ".
  188.  
  189. * $_pagi_nav_estilo OPCIONAL Cadena. Contiene el nombre del estilo CSS para los enlaces de paginación.
  190.  
  191. Por defecto no se especifica estilo.
  192.  
  193. * $_pagi_nav_anterior OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página anterior. Puede ser un tag <img>.
  194.  
  195. Por defecto se utiliza la cadena "&laquo; Anterior".
  196.  
  197. * $_pagi_nav_siguiente OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag <img>.
  198.  
  199. Por defecto se utiliza la cadena "Siguiente &raquo;"
  200.  
  201. * $_pagi_nav_primera OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la primera página. Puede ser un tag <img>.
  202.  
  203. Por defecto se utiliza la cadena "&laquo;&laquo; Primera".
  204.  
  205. * $_pagi_nav_ultima OPCIONAL Cadena. Contiene lo que debe ir en el enlace a la página siguiente. Puede ser un tag <img>.
  206.  
  207. Por defecto se utiliza la cadena "&Uacute;ltima &raquo;&raquo;"
  208.  
  209. --------------------------------------------------------------------------
  210.  
  211. */
  212.  
  213.  
  214.  
  215.  
  216.  
  217. /*
  218.  
  219. * Verificación de los parámetros obligatorios y opcionales.
  220.  
  221. *------------------------------------------------------------------------
  222.  
  223. */
  224.  
  225. if(empty($_pagi_sql)){
  226.  
  227. // Si no se definió $_pagi_sql... grave error!
  228.  
  229. // Este error se muestra sí o sí (ya que no es un error de mysql)
  230.  
  231. die("<b>Error Paginator : </b>No se ha definido la variable \$_pagi_sql");
  232.  
  233. }
  234.  
  235.  
  236.  
  237. if(empty($_pagi_cuantos)){
  238.  
  239. // Si no se ha especificado la cantidad de registros por página
  240.  
  241. // $_pagi_cuantos será por defecto 20
  242.  
  243. $_pagi_cuantos = 20;
  244.  
  245. }
  246.  
  247.  
  248.  
  249. if(!isset($_pagi_mostrar_errores)){
  250.  
  251. // Si no se ha elegido si se mostrará o no errores
  252.  
  253. // $_pagi_errores será por defecto true. (se muestran los errores)
  254.  
  255. $_pagi_mostrar_errores = true;
  256.  
  257. }
  258.  
  259.  
  260.  
  261. if(!isset($_pagi_conteo_alternativo)){
  262.  
  263. // Si no se ha elegido el tipo de conteo
  264.  
  265. // Se realiza el conteo dese mySQL con COUNT(*)
  266.  
  267. $_pagi_conteo_alternativo = false;
  268.  
  269. }
  270.  
  271.  
  272.  
  273. if(!isset($_pagi_separador)){
  274.  
  275. // Si no se ha elegido un separador
  276.  
  277. // Se toma el separador por defecto.
  278.  
  279. $_pagi_separador = " | ";
  280.  
  281. }
  282.  
  283.  
  284.  
  285. if(isset($_pagi_nav_estilo)){
  286.  
  287. // Si se ha definido un estilo para los enlaces, se genera el atributo "class" para el enlace
  288.  
  289. $_pagi_nav_estilo_mod = "class=\"$_pagi_nav_estilo\"";
  290.  
  291. }else{
  292.  
  293. // Si no, se utiliza una cadena vacía.
  294.  
  295. $_pagi_nav_estilo_mod = "";
  296.  
  297. }
  298.  
  299.  
  300.  
  301. if(!isset($_pagi_nav_anterior)){
  302.  
  303. // Si no se ha elegido una cadena para el enlace "siguiente"
  304.  
  305. // Se toma la cadena por defecto.
  306.  
  307. $_pagi_nav_anterior = "&laquo; Anterior";
  308.  
  309. }
  310.  
  311.  
  312.  
  313. if(!isset($_pagi_nav_siguiente)){
  314.  
  315. // Si no se ha elegido una cadena para el enlace "siguiente"
  316.  
  317. // Se toma la cadena por defecto.
  318.  
  319. $_pagi_nav_siguiente = "Siguiente &raquo;";
  320.  
  321. }
  322.  
  323.  
  324.  
  325. if(!isset($_pagi_nav_primera)){
  326.  
  327. // Si no se ha elegido una cadena para el enlace "primera"
  328.  
  329. // Se toma la cadena por defecto.
  330.  
  331. $_pagi_nav_primera = "&laquo;&laquo; Primera";
  332.  
  333. }
  334.  
  335.  
  336.  
  337. if(!isset($_pagi_nav_ultima)){
  338.  
  339. // Si no se ha elegido una cadena para el enlace "siguiente"
  340.  
  341. // Se toma la cadena por defecto.
  342.  
  343. $_pagi_nav_ultima = "&Uacute;ltima &raquo;&raquo;";
  344.  
  345. }
  346.  
  347.  
  348.  
  349. //------------------------------------------------------------------------
  350.  
  351.  
  352.  
  353.  
  354.  
  355. /*
  356.  
  357. * Establecimiento de la página actual.
  358.  
  359. *------------------------------------------------------------------------
  360.  
  361. */
  362.  
  363. if (empty($_GET['_pagi_pg'])){
  364.  
  365. // Si no se ha hecho click a ninguna página específica
  366.  
  367. // O sea si es la primera vez que se ejecuta el script
  368.  
  369. // $_pagi_actual es la pagina actual-->será por defecto la primera.
  370.  
  371. $_pagi_actual = 1;
  372.  
  373. }else{
  374.  
  375. // Si se "pidió" una página específica:
  376.  
  377. // La página actual será la que se pidió.
  378.  
  379. $_pagi_actual = $_GET['_pagi_pg'];
  380.  
  381. }
  382.  
  383. //------------------------------------------------------------------------
  384.  
  385.  
  386.  
  387.  
  388.  
  389. /*
  390.  
  391. * Establecimiento del número de páginas y del total de registros.
  392.  
  393. *------------------------------------------------------------------------
  394.  
  395. */
  396.  
  397. // Contamos el total de registros en la BD (para saber cuántas páginas serán)
  398.  
  399. // La forma de hacer ese conteo dependerá de la variable $_pagi_conteo_alternativo
  400.  
  401. if($_pagi_conteo_alternativo == false){
  402.  
  403. $_pagi_sqlConta = eregi_replace("select[[:space:]](.*)[[:space:]]from", "SELECT COUNT(*) FROM", $_pagi_sql);
  404.  
  405. $_pagi_result2 = mysql_query($_pagi_sqlConta);
  406.  
  407. // Si ocurrió error y mostrar errores está activado
  408.  
  409. if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
  410.  
  411. die (" Error en la consulta de conteo de registros: $_pagi_sqlConta. Mysql dijo: <b>".mysql_error()."</b>");
  412.  
  413. }
  414.  
  415. $_pagi_totalReg = mysql_result($_pagi_result2,0,0);//total de registros
  416.  
  417. }else{
  418.  
  419. $_pagi_result3 = mysql_query($_pagi_sql);
  420.  
  421. // Si ocurrió error y mostrar errores está activado
  422.  
  423. if($_pagi_result3 == false && $_pagi_mostrar_errores == true){
  424.  
  425. die (" Error en la consulta de conteo alternativo de registros: $_pagi_sql. Mysql dijo: <b>".mysql_error()."</b>");
  426.  
  427. }
  428.  
  429. $_pagi_totalReg = mysql_num_rows($_pagi_result3);
  430.  
  431. }
  432.  
  433. // Calculamos el número de páginas (saldrá un decimal)
  434.  
  435. // con ceil() redondeamos y $_pagi_totalPags será el número total (entero) de páginas que tendremos
  436.  
  437. $_pagi_totalPags = ceil($_pagi_totalReg / $_pagi_cuantos);
  438.  
  439.  
  440.  
  441. //------------------------------------------------------------------------
  442.  
  443.  
  444.  
  445.  
  446.  
  447. /*
  448.  
  449. * Propagación de variables por el URL.
  450.  
  451. *------------------------------------------------------------------------
  452.  
  453. */
  454.  
  455. // La idea es pasar también en los enlaces las variables hayan llegado por url.
  456.  
  457. $_pagi_enlace = $_SERVER['PHP_SELF'];
  458.  
  459. $_pagi_query_string = "?";
  460.  
  461.  
  462.  
  463. if(!isset($_pagi_propagar)){
  464.  
  465. //Si no se definió qué variables propagar, se propagará todo el $_GET (por compatibilidad con versiones anteriores)
  466.  
  467. //Perdón... no todo el $_GET. Todo menos la variable _pagi_pg
  468.  
  469. if (isset($_GET['_pagi_pg'])) unset($_GET['_pagi_pg']); // Eliminamos esa variable del $_GET
  470.  
  471. $_pagi_propagar = array_keys($_GET);
  472.  
  473. }elseif(!is_array($_pagi_propagar)){
  474.  
  475. // si $_pagi_propagar no es un array... grave error!
  476.  
  477. die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
  478.  
  479. }
  480.  
  481. // Este foreach está tomado de la Clase Paginado de webstudio
  482.  
  483. // (http://www.forosdelweb.com/showthread.php?t=65528)
  484.  
  485. foreach($_pagi_propagar as $var){
  486.  
  487. if(isset($GLOBALS[$var])){
  488.  
  489. // Si la variable es global al script
  490.  
  491. $_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
  492.  
  493. }elseif(isset($_REQUEST[$var])){
  494.  
  495. // Si no es global (o register globals está en OFF)
  496.  
  497. $_pagi_query_string.= $var."=".$_REQUEST[$var]."&";
  498.  
  499. }
  500.  
  501. }
  502.  
  503.  
  504.  
  505. // Añadimos el query string a la url.
  506.  
  507. $_pagi_enlace .= $_pagi_query_string;
  508.  
  509.  
  510.  
  511. //------------------------------------------------------------------------
  512.  
  513.  
  514.  
  515.  
  516.  
  517. /*
  518.  
  519. * Generación de los enlaces de paginación.
  520.  
  521. *------------------------------------------------------------------------
  522.  
  523. */
  524.  
  525. // La variable $_pagi_navegacion contendrá los enlaces a las páginas.
  526.  
  527. $_pagi_navegacion_temporal = array();
  528.  
  529. if ($_pagi_actual != 1){
  530.  
  531. // Si no estamos en la página 1. Ponemos el enlace "primera"
  532.  
  533. $_pagi_url = 1; //será el número de página al que enlazamos
  534.  
  535. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_pagi_nav_primera</a>";
  536.  
  537.  
  538.  
  539. // Si no estamos en la página 1. Ponemos el enlace "anterior"
  540.  
  541. $_pagi_url = $_pagi_actual - 1; //será el número de página al que enlazamos
  542.  
  543. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_pagi_nav_anterior</a>";
  544.  
  545. }
  546.  
  547.  
  548.  
  549. // La variable $_pagi_nav_num_enlaces sirve para definir cuántos enlaces con
  550.  
  551. // números de página se mostrarán como máximo.
  552.  
  553. // Ojo: siempre se mostrará un número impar de enlaces. Más info en la documentación.
  554.  
  555.  
  556.  
  557. if(!isset($_pagi_nav_num_enlaces)){
  558.  
  559. // Si no se definió la variable $_pagi_nav_num_enlaces
  560.  
  561. // Se asume que se mostrarán todos los números de página en los enlaces.
  562.  
  563. $_pagi_nav_desde = 1;//Desde la primera
  564.  
  565. $_pagi_nav_hasta = $_pagi_totalPags;//hasta la última
  566.  
  567. }else{
  568.  
  569. // Si se definió la variable $_pagi_nav_num_enlaces
  570.  
  571. // Calculamos el intervalo para restar y sumar a partir de la página actual
  572.  
  573. $_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1;
  574.  
  575.  
  576.  
  577. // Calculamos desde qué número de página se mostrará
  578.  
  579. $_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo;
  580.  
  581. // Calculamos hasta qué número de página se mostrará
  582.  
  583. $_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;
  584.  
  585.  
  586.  
  587. // Ajustamos los valores anteriores en caso sean resultados no válidos
  588.  
  589.  
  590.  
  591. // Si $_pagi_nav_desde es un número negativo
  592.  
  593. if($_pagi_nav_desde < 1){
  594.  
  595. // Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.
  596.  
  597. $_pagi_nav_hasta -= ($_pagi_nav_desde - 1);
  598.  
  599. // Establecemos $_pagi_nav_desde como 1.
  600.  
  601. $_pagi_nav_desde = 1;
  602.  
  603. }
  604.  
  605. // Si $_pagi_nav_hasta es un número mayor que el total de páginas
  606.  
  607. if($_pagi_nav_hasta > $_pagi_totalPags){
  608.  
  609. // Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar.
  610.  
  611. $_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags);
  612.  
  613. // Establecemos $_pagi_nav_hasta como el total de páginas.
  614.  
  615. $_pagi_nav_hasta = $_pagi_totalPags;
  616.  
  617. // Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
  618.  
  619. if($_pagi_nav_desde < 1){
  620.  
  621. $_pagi_nav_desde = 1;
  622.  
  623. }
  624.  
  625. }
  626.  
  627. }
  628.  
  629.  
  630.  
  631. for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags)
  632.  
  633. if ($_pagi_i == $_pagi_actual) {
  634.  
  635. // Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita.
  636.  
  637. $_pagi_navegacion_temporal[] = "<span ".$_pagi_nav_estilo_mod.">$_pagi_i</span>";
  638.  
  639. }else{
  640.  
  641. // Si es cualquier otro. Se escibe el enlace a dicho número de página.
  642.  
  643. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_i."'>".$_pagi_i."</a>";
  644.  
  645. }
  646.  
  647. }
  648.  
  649.  
  650.  
  651. if ($_pagi_actual < $_pagi_totalPags){
  652.  
  653. // Si no estamos en la última página. Ponemos el enlace "Siguiente"
  654.  
  655. $_pagi_url = $_pagi_actual + 1; //será el número de página al que enlazamos
  656.  
  657. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_pagi_nav_siguiente</a>";
  658.  
  659.  
  660.  
  661. // Si no estamos en la última página. Ponemos el enlace "Última"
  662.  
  663. $_pagi_url = $_pagi_totalPags; //será el número de página al que enlazamos
  664.  
  665. $_pagi_navegacion_temporal[] = "<a ".$_pagi_nav_estilo_mod." href='".$_pagi_enlace."_pagi_pg=".$_pagi_url."'>$_pagi_nav_ultima</a>";
  666.  
  667. }
  668.  
  669. $_pagi_navegacion = implode($_pagi_separador, $_pagi_navegacion_temporal);
  670.  
  671.  
  672.  
  673. //------------------------------------------------------------------------
  674.  
  675.  
  676.  
  677.  
  678.  
  679. /*
  680.  
  681. * Obtención de los registros que se mostrarán en la página actual.
  682.  
  683. *------------------------------------------------------------------------
  684.  
  685. */
  686.  
  687. // Calculamos desde qué registro se mostrará en esta página
  688.  
  689. // Recordemos que el conteo empieza desde CERO.
  690.  
  691. $_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;
  692.  
  693.  
  694.  
  695. // Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial
  696.  
  697. $_pagi_sqlLim = $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos";
  698.  
  699. $_pagi_result = mysql_query($_pagi_sqlLim);
  700.  
  701. // Si ocurrió error y mostrar errores está activado
  702.  
  703. if($_pagi_result == false && $_pagi_mostrar_errores == true){
  704.  
  705. die ("Error en la consulta limitada: $_pagi_sqlLim. Mysql dijo: <b>".mysql_error()."</b>");
  706.  
  707. }
  708.  
  709.  
  710.  
  711. //------------------------------------------------------------------------
  712.  
  713.  
  714.  
  715.  
  716.  
  717. /*
  718.  
  719. * Generación de la información sobre los registros mostrados.
  720.  
  721. *------------------------------------------------------------------------
  722.  
  723. */
  724.  
  725. // Número del primer registro de la página actual
  726.  
  727. $_pagi_desde = $_pagi_inicial + 1;
  728.  
  729.  
  730.  
  731. // Número del último registro de la página actual
  732.  
  733. $_pagi_hasta = $_pagi_inicial + $_pagi_cuantos;
  734.  
  735. if($_pagi_hasta > $_pagi_totalReg){
  736.  
  737. // Si estamos en la última página
  738.  
  739. // El ultimo registro de la página actual será igual al número de registros.
  740.  
  741. $_pagi_hasta = $_pagi_totalReg;
  742.  
  743. }
  744.  
  745.  
  746.  
  747. $_pagi_info = "desde el $_pagi_desde hasta el $_pagi_hasta de un total de $_pagi_totalReg";
  748.  
  749.  
  750.  
  751. //------------------------------------------------------------------------
  752.  
  753.  
  754.  
  755.  
  756.  
  757. /**
  758.  
  759. * Variables que quedan disponibles después de incluir el script vía include():
  760.  
  761. * ------------------------------------------------------------------------
  762.  
  763.  
  764.  
  765. * $_pagi_result Identificador del resultado de la consulta a la BD para los registros de la página actual.
  766.  
  767. Listo para ser "pasado" por una función como mysql_fetch_row(), mysql_fetch_array(),
  768.  
  769. mysql_fetch_assoc(), etc.
  770.  
  771.  
  772.  
  773. * $_pagi_navegacion Cadena que contiene la barra de navegación con los enlaces a las diferentes páginas.
  774.  
  775. Ejemplo: "<<primera | <anterior | 1 | 2 | 3 | 4 | siguiente> | última>>".
  776.  
  777.  
  778.  
  779. * $_pagi_info Cadena que contiene información sobre los registros de la página actual.
  780.  
  781. Ejemplo: "desde el 16 hasta el 30 de un total de 123";
  782.  
  783.  
  784.  
  785. */
  786.  
  787. ?>
RAW Paste Data