Foros del Web » Programando para Internet » PHP »

paginator sin numeracion

Estas en el tema de paginator sin numeracion en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema, no me aparece la numeracion en el paginator solo siguiente y anterior, no tengo idea por que será. El paginator ...
  #1 (permalink)  
Antiguo 05/07/2011, 07:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
paginator sin numeracion

Hola, tengo el siguiente problema, no me aparece la numeracion en el paginator solo siguiente y anterior, no tengo idea por que será.

El paginator que utilizo:


<?php

** Documentación y ejemplo de uso:
** http://jpinedo.webcindario.com


* 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).

* Verificación de los parámetros obligatorios y opcionales.
*------------------------------------------------------------------------
*/
if(empty($_pagi_sql)){
//Si no se definió $_pagi_sql... 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;
}

* 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)
$_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. 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);

* Propagación de variables por el URL.
*------------------------------------------------------------------------
*/
//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($_pagi_propagar)){
//Si se definió el array para elegir qué variables propagar

if(!is_array($_pagi_propagar)){
//si $_pagi_propagar no es un array... error!
die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
}else{
//Este foreach está tomado de la Clase Paginado de webstudio
//(http://www.forosdelweb.com/f18/para-paginar-con-php-65528/)
foreach($_pagi_propagar as $var){
$_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
}
}

}else{
//Si no se definió qué variables propagar, se propagan todas las que vienen por URL
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 != '_pagi_pg'){
$_pagi_query_string .= $_pagi_clave."=".$_pagi_valor."&";
}
}
}
}

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


* Generación de los enlaces de paginación.
*------------------------------------------------------------------------
*/
//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."_pagi_pg=".$_pagi_url."' class='pagina'>&laquo; Anterior</a>&nbsp;";
}

//La variable $_pagi_nav_num_enlaces sirve para definir cuántos enlaces con
//números de página se mostrarán como máximo.
//Ojo: siempre se mostrará un número impar de enlaces. Más info en la documentación.

if(!isset($_pagi_nav_num_enlaces)){
//Si no se definió la variable $_pagi_nav_num_enlaces
//Se asume que se mostrarán todos los números de página en los enlaces.
$_pagi_nav_desde = 1;//Desde la primera
$_pagi_nav_hasta = $_pagi_totalPags;//hasta la última
}else{
//Si se definió la variable $_pagi_nav_num_enlaces
//Calculamos el intervalo para restar y sumar a partir de la página actual
$_pagi_nav_intervalo = ceil($_pagi_nav_num_enlaces/2) - 1;

//Calculamos desde qué número de página se mostrará
$_pagi_nav_desde = $_pagi_actual - $_pagi_nav_intervalo;
//Calculamos hasta qué número de página se mostrará
$_pagi_nav_hasta = $_pagi_actual + $_pagi_nav_intervalo;

//Ajustamos los valores anteriores en caso sean resultados no válidos

//Si $_pagi_nav_desde es un número negativo
if($_pagi_nav_desde < 1){
//Le sumamos la cantidad sobrante al final para mantener el número de enlaces que se quiere mostrar.
$_pagi_nav_hasta -= ($_pagi_nav_desde - 1);
//Establecemos $_pagi_nav_desde como 1.
$_pagi_nav_desde = 1;
}
//Si $_pagi_nav_hasta es un número mayor que el total de páginas
if($_pagi_nav_hasta > $_pagi_totalPags){
//Le restamos la cantidad excedida al comienzo para mantener el número de enlaces que se quiere mostrar.
$_pagi_nav_desde -= ($_pagi_nav_hasta - $_pagi_totalPags);
//Establecemos $_pagi_nav_hasta como el total de páginas.
$_pagi_nav_hasta = $_pagi_totalPags;
//Hacemos el último ajuste verificando que al cambiar $_pagi_nav_desde no haya quedado con un valor no válido.
if($_pagi_nav_desde < 1){
$_pagi_nav_desde = 1;
}
}
}
/* se quita para que no muetre los numeros de página
for ($_pagi_i = $_pagi_nav_desde; $_pagi_i<=$_pagi_nav_hasta; $_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."_pagi_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."_pagi_pg=".$_pagi_url."' class='pagina'>Siguiente &raquo;</a>";
}


* Obtención de los registros que se mostrarán en la página actual.
*------------------------------------------------------------------------
*/
//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);
//Si ocurrió error y mostrar errores está activado
if($_pagi_result == false && $_pagi_mostrar_errores == true){
die ("Error en la consulta limitada. Mysql dijo: <b>".mysql_error()."</b>");
}


* Generación de la información sobre los registros mostrados.
*------------------------------------------------------------------------
*/
//Número del primer registro de la página actual
$desde = $_pagi_inicial + 1;

//Número del último registro de la página actual
$hasta = $_pagi_inicial + $_pagi_cuantos;
if($hasta > $_pagi_totalReg){
//Si estamos en la última página
//El ultimo registro de la página actual será igual al número de registros.
$hasta = $_pagi_totalReg;
}

$_pagi_info = "desde el $desde hasta el $hasta de un total de $_pagi_totalReg";


* Variables que quedan disponibles después de incluir el script vía include():
* ------------------------------------------------------------------------

* $_pagi_result Identificador del resultado de la consulta a la BD para los registros de la página actual.
Listo para ser "pasado" por una función como mysql_fetch_row(), mysql_fetch_array(),
mysql_fetch_assoc(), etc.

* $_pagi_navegacion Cadena que contiene la barra de navegación con los enlaces a las diferentes páginas.
Ejemplo: "<<anterior 1 2 3 4 siguiente>>".

* $_pagi_info Cadena que contiene información sobre los registros de la página actual.
Ejemplo: "desde el 16 hasta el 30 de un total de 123";

*/
?>
  #2 (permalink)  
Antiguo 05/07/2011, 08:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: paginator sin numeracion

Aca hago el include:

<?php

$_pagi_sql="SELECT * FROM cuidado_personal";
$_pagi_cuantos=1;
include ("../_php/paginator.php");

include ("../_php/proceso-ver-productos-personal.php");



?>

<div class="paginator"><?php echo $_pagi_navegacion; ?></div>
  #3 (permalink)  
Antiguo 05/07/2011, 08:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: paginator sin numeracion

Me aparece el vinculo siguiente y atrás pero no la numeracion.
  #4 (permalink)  
Antiguo 05/07/2011, 10:15
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: paginator sin numeracion

Uy! Cuanto codigo! Y sin resaltador se hace ilegible!

Vos modificaste en algo el codigo original del paginator?
  #5 (permalink)  
Antiguo 05/07/2011, 15:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: paginator sin numeracion

Si perdon, no modifique en nada ese codigo, capáz que sabes de algun paginator que pueda andar mejor.
Saludos!
  #6 (permalink)  
Antiguo 05/07/2011, 15:47
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: paginator sin numeracion

Tenes la web online, como para visitarla? Estas seguro de que no se imprimen los datos? De que no existen? A mi siempre me funcionó este paginator.
  #7 (permalink)  
Antiguo 06/07/2011, 06:41
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: paginator sin numeracion

Te pasaría la pagina el tema que despues aparece en el buscador!, si tenes alguna otra forma para decirte la pagina.
Saludos y gracias!
  #8 (permalink)  
Antiguo 06/07/2011, 07:01
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: paginator sin numeracion

Tal vez no te sirva de mucho pero si buscas o necesitas un paginador ecxelente mira este http://objetivophp.com/?p=101
__________________
Aprendiendo!!!
  #9 (permalink)  
Antiguo 06/07/2011, 07:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 414
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: paginator sin numeracion

ok, lo voy a probar, aunque tengo otro paginator tambien y me aperece el mismo error, Saludos!

Etiquetas: numeracion, paginator
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.