Foros del Web » Programando para Internet » PHP »

problema con paginador

Estas en el tema de problema con paginador en el foro de PHP en Foros del Web. Hola!! tengo un problema con un paginador que he hecho, antes que nada, espero no molestar a nadie, especialmente al jpinedo, pues tome como referencia ...
  #1 (permalink)  
Antiguo 25/12/2004, 18:02
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 13 años, 8 meses
Puntos: 406
problema con paginador

Hola!!

tengo un problema con un paginador que he hecho, antes que nada, espero no molestar a nadie, especialmente al jpinedo, pues tome como referencia su paginador para poder hacer el mio, con esto, no quiero hacer competencia ni nada por el estilo, simplemente lo he hecho como aprendisaje, es simple, pero me costo trabajo

el problema que tengo es que cuando muesto mi barra de informacion, (lo que en paginator seria $_pagi_info) me muestra informacion incorrecta, por ejemplo, si en la tabla usurios solo existen 2 usuarios deveria de mistral la siguiente informacion con un limite de 20

Mostrando en la pagina actual del 1</STRONG> al 2 de un total de 2

sin embargo me muestra lo siguiente

Mostrando en la pagina actual del 1 al 20 de un total de 2

he hay mi problema, aqui les dejo el codigo de la apliacacion

Código PHP:
<?php
//checho si ya se declaro la sentencia sql
if (empty($pagi_sql)) {
die (
"Error, no se ha declarado la variable \$pagi_sql");
}
//verifico cuantos elemetos mostrar
//si no se especifica, por defecto sera 20
if (empty($pagi_cuantos)) {
$pagi_cuantos=20;
}
//verifico si se especifico mostrar o no errores
//por defecto es true
if (empty($pagi_error)) {
$pagi_error=true;
}
//----------------------------------------------------------------------------
//comensamos el paginador
//primero vemos cuantos registros existen
$pagi_sql_=eregi_replace("select (.*) from""SELECT COUNT(*) FROM"$pagi_sql);
$pagi_query=mysql_query($pagi_sql_);
//si esta en true los errores los imprimimos
if ($pagi_query==false && $pagi_error==true) {
die(
"Error en el conteo de registros, MySQL a dicho <br> <strong>".mysql_error()."</strong>");
}
$pagi_total_reg mysql_result($pagi_query,0,0);//total de registros
//ahora calculamos cuantas paginas se necesitaran para mostrar los resultados
$pagi_total_pag=ceil($pagi_total_reg/$pagi_cuantos);
//------------------------------------------------------------------------------
//ahora, verificamos en que pagina se encuentra el script
if (isset($_GET["pag"])) {
$pagi_num_pag=$_GET["pag"];
}else {
$pagi_num_pag=1;
}
//ahora, creamos el query que servira para mostrar los resultados
$pagi_inicio = ($pagi_num_pag-1) * $pagi_cuantos;
$pagi_result_sql=$pagi_sql.=" LIMIT $pagi_inicio,$pagi_cuantos";
$pagi_result=mysql_query($pagi_result_sql);
if (
$pagi_result == false && $pagi_error == true) {
die(
"Error en la sentencia final, MySQL a dicho <br> <strong>".mysql_error()."</strong>");
}
//----------------------------------------------------------------------------
//creamos los links para mostrar
$pagi_atras_num=$pagi_num_pag-1;
$pagi_atras="<a href='?pag=".$pagi_atras_num."'>Anterior</a>&nbsp;";
//--------
$pagi_siguiente_num=$pagi_num_pag+1;
$pagi_siguiente="<a href='?pag=".$pagi_siguiente_num."'>Siguiente</a>&nbsp;";
//--------
for ($pagi_num_=1$pagi_num_ <= $pagi_total_pag$pagi_num_++) {
if (
$pagi_num_ == $pagi_num_pag) {
$pagi_num.="&nbsp;<strong>".$pagi_num_."</strong>&nbsp;";
}else {
$pagi_num.="<a href='?pag=".$pagi_num_."'>".$pagi_num_."</a>&nbsp;";
}
}
//-------------------------------------------------------------------------
//organisamos los links dependiendo de que pagina estamos
if ($pagi_num_pag == 1) {
$_base_=1;
}else {
$_base_=2;
}
if (
$pagi_num_pag != $pagi_total_reg) {
switch (
$_base_) {
 case 
1:
 
$pagi_navegacion="Anterior&nbsp;";
 
$pagi_navegacion.=$pagi_num;
 
$pagi_navegacion.=$pagi_siguiente;
 break;
 case 
2:
 
$pagi_navegacion=$pagi_atras;
 
$pagi_navegacion.=$pagi_num;
 
$pagi_navegacion.=$pagi_siguiente;
 break;
}
}else{
 
$pagi_navegacion=$pagi_atras;
 
$pagi_navegacion.=$pagi_num;
 
$pagi_navegacion.="Siguiente";
}
//----------------------------------------------------------------
//creo una barra de informacion sobre los resultados mostrados
$pagi_inicio2=$pagi_inicio 1;
$pagi_fin2=$pagi_inicio+$pagi_cuantos;
$pagi_info="Mostrando en la pagina actual del <strong>".$pagi_inicio2."</strong> al <strong>".$pagi_fin2."</strong> de un total de <strong>".$pagi_total_reg."</strong>";
?>
de antemano gracias
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 25/12/2004, 21:30
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno...
Cita:
tengo un problema con un paginador que he hecho, antes que nada, espero no molestar a nadie, especialmente al jpinedo, pues tome como referencia su paginador para poder hacer el mio
Bueno... en realidad sí molesta un poco... pero no el hecho de que lo utilices, lo modifiques, lo vendas, lo regales o lo que quieras porque para eso está... lo que me molesta (o más bien, preocupa) es que digas "paginador que he hecho" cuando sólo has hecho una pequeña modificación al código original de Paginator. Y en realidad no entiendo con qué fin cambias los nombres de variables y los comentarios. Creo que lo correcto en este caso sería decir "he agregado tal funcionalidad" o "he modificado tales líneas con el fin de..." como lo han hecho muchos otros usuarios de Paginator.... o simplemente no decir nada... pero no atribuirse cosas que no corresponden.

Cita:
con esto, no quiero hacer competencia ni nada por el estilo, simplemente lo he hecho como aprendisaje, es simple, pero me costo trabajo
Bueno... como te dije, no habría problema si hicieras competencia... eso siempre es beneficioso... pero me preocupa que pienses que lo has hecho tú. Revisa los detalles de la licencia GNU/GPL para que veas que se puede hacer y las pequeñas extensiones de esa licencia que pongo en el código fuente y en la web: http://jpinedo.webcindario.com/scrip...formacion.html

Cita:
el problema que tengo es que cuando muesto mi barra de informacion, (lo que en paginator seria $_pagi_info) me muestra informacion incorrecta, por ejemplo, si en la tabla usurios solo existen 2 usuarios deveria de mistral la siguiente informacion con un limite de 20

Mostrando en la pagina actual del 1</STRONG> al 2 de un total de 2

sin embargo me muestra lo siguiente

Mostrando en la pagina actual del 1 al 20 de un total de 2
Bueno... y ahora ya aclarado el asunto anterior... te invito a revisar la versión 1.5 de Paginator... que salió desde el 3 de noviembre. Sobretodo revisa lo que hace la variable $_pagi_conteo_alternativo
http://jpinedo.webcindario.com/scripts/paginator/

También si buscas por "Paginator" en el foro verás algún post donde expliqué extensamente el por qué de esa variable... supongo que es la misma razón de lo que te pasa a ti.... pero si no lo fuera, por favor da más detalles de las condiciones en las que se produce el error (por ejemplo, consultas complejas) que con gusto te ayudaremos a resolverlo.

Saludos
  #3 (permalink)  
Antiguo 25/12/2004, 21:41
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 13 años, 8 meses
Puntos: 406
hola

lamento que se tomara en ese sentido, en realidad, lo que queria era saber como funciona y como hacer un paginador y asi aprender, y en efecto, solo lo modifique, puesto que apenas me estoy adentrando realmente en php, y si te molesto lo lamento mucho, en ningun momento me quise apropiar o que me quedara con tu script, para nada, solo quice ver como funciona desde 0, solo basado en tu paginator, ahora, lo que comentas de competencia no creo estar todabia a la misma altura , para eso todabia me falta.
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 25/12/2004, 21:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno... no hay problema... no quise sonar "amargado"... simplemente es un poco incómodo... pero sí quería dejarlo claro... y si ya lo está... tema cerrado!

Ahora... volviendo a tu problema... acá te dejo el link al post donde expliqué un poco más el por qué de esa variable... con eso y el código fuente de la versión 1.5 tendrás mucha información:
http://www.forosdelweb.com/showpost....1&postcount=11

Saludos
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 15:23.