<?php function PAGINAR($_max,$_db,$_uri,$_sep,$_class) { // $_max obtiene el numero de filas a mostrar en cada pagina (default: 20) // $_db contiene la consulta SQL que genera el paginador (default: error) // $_uri contiene la URL de la pagina para propagarla (default: automatico) // $_sep contiene el/los caracter/es que separan cada numero de pagina, por default son espacios en blanco (opcional) // $_class contiene la clase personalizada para darle formato a los vinculos (opcional) if (empty($_max)) { $_max = 20; } else { $_max = $_max; } if (empty($_sep)) { $_sep = ' '; } else { $_sep = $_sep; } if (empty($_class)) { $_class = 'paginator'; } else { $_class = $_class; } if (empty($_GET['p'])) { $_pag = 1; } else { $_pag = $_GET['p']; } if (empty($_db)) { echo 'Error critico. No se ha seteado la variable $_db para realizar la consulta SQL'; exit; } else { $_db = $_db; } $_query = @mysql_query($_db); $_total = @mysql_num_rows($_query); $_total = ceil($_total/$_max); if (!$_uri) { $_uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; } else { $_uri = $_uri; } if ($_total >= 2) { for ($_i = 1; $_i <= $_total ;$_i++) { if ($_pag) { if (($_i == $_pag) || (!$_GET[p] && $_i == 1)) { echo '<span class="'.$_class.'">['.$_i.']</span>'.$_sep } else { echo '<a href="'.$_uri.'&p='.$_i.'" class="'.$_class.'"><span class="'.$_class.'">'.$_i.'</a>'.$_sep; } } } mysql_free_result($_query); } } ?>Modo de uso (explicado linea a linea):
<?php // indicamos el valor maximo $_paginador[max] = 20; // obtenemos el valor minimo actual if (empty($_GET['p']) || $_GET['p'] == 1) { $_paginador[min] = 0; } else { $_paginador[min] = ($_GET['p']-1) * $_paginador[max]; } // realizamos la consulta $_sql = mysql_query("SELECT * FROM `nombre_de_tabla` DESC LIMIT $_paginador[min],$_paginador[max]"); while ($_row = mysql_fetch_assoc($_sql)) { echo $_row['nombre_de_campo']; } // URL actual $_paginador['url'] = 'index.php?mod=fotos'; // Consulta sin LIMIT para contar los registros totales. $_paginador['db'] = 'SELECT * FROM `nombre_de_tabla`'; // indicamos el separador (opcional) $_paginador['sep'] = ' '; // indicamos la clase CSS (opcional) $_paginador['class'] = 'blue'; // llamamos al paginador PAGINAR($_paginador[max],$_paginador['db'],$_paginador['url'],$_paginador['sep'],$_paginador['class']); ?>
En la primera parte, el “$_max = $_max”, “$_sep = $_sep” y “$_class = $_class” sobran (con su correspondiente “else {..}”.