Foros del Web » Programando para Internet » PHP »

ayuda con paginacion... porfavor

Estas en el tema de ayuda con paginacion... porfavor en el foro de PHP en Foros del Web. hola, estaba comenzando a aplicar paginacion a mis registros, pero no lo he conseguido a un 50% ya que solo he conseguido crear la numeracion ...
  #1 (permalink)  
Antiguo 23/02/2009, 08:58
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
ayuda con paginacion... porfavor

hola, estaba comenzando a aplicar paginacion a mis registros, pero no lo he conseguido a un 50% ya que solo he conseguido crear la numeracion de acuerdo a el numero de registros y el boton "atras" y "adelante". Lo que no he conseguido mostrar la cantidad de registros que deseo establecer, osea si tengo 10 registros solo quiero que se muestren 5, pero siempre me salen los 10registros.....

Aqui preparo la paginacion, dependiendo de mi consulta:

Código PHP:
$consulta "select * from paciente where paciente_flag_estado='1' order by paciente_nombre";
$rs=mysql_query($consulta,$c);
$num=mysql_num_rows($rs); 

//PAGINACION---------------------------------------------------------//
$pagina 1;
$total_paginas 1;

if(
$num 0){
    
//VALORES PARA LA PAGINACION
    
$registros 5;    //registros a mostrar, solo 5
    
if(!$_GET["pagina"]){
        
$inicio 0;    //la inicialicacion del limit de la consulta
        
$pagina 1;    //inicio la pagina en 1
    
}else{
        
$inicio = ($_GET["pagina"] - 1) * $registros;
        
$pagina $_GET["pagina"];
    }
    
//haciendo la paginacion
    
if(isset($_GET["pag"])){
        if(
$_GET["pag"] == "sig"){
            
$pagina $pagina 1;
        }elseif(
$_GET["pag"] == "ant"){
            
$pagina $pagina 1;
            
$inicio = ($_GET["pagina"] - 1) * $registros;
        }
    }

    
$total_paginas ceil($num/$registros);
    
$consulta .= " limit ".$inicio.",".$registros;

Y Aqui es donde genero los registros, y creo que aqui me falta algo de codigo... sobre todo antes del for

Código PHP:
 <?php
//PREGUNTAMOS SI EXISTEN REGISTROS
if($num>0){
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td align="left" valign="top">
             <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border:solid 1px #D2E4D4">
                 <tr>
                    <td width="39" height="18" align="center" bgcolor="#D8EECC"></td>                                  <td width="226" bgcolor="#D8EECC" class="HeadList">Nombres <img src="imagenes/order.gif" alt="" width="8" height="7" align="absmiddle" /></td>
                                      <td width="226" bgcolor="#D8EECC" class="HeadList">Apellidos <img src="imagenes/order.gif" alt="" width="8" height="7" align="absmiddle" /></td>
                                      <td width="59" bgcolor="#D8EECC" class="HeadList">Edad <img src="imagenes/order.gif" alt="" width="8" height="7" align="absmiddle" /></td>
                                      <td width="190" bgcolor="#D8EECC" class="HeadList">fecha de Registro </td>

    <td width="329" bgcolor="#D8EECC" class="HeadList">Titular <img src="imagenes/order.gif" alt="" width="8" height="7" align="absmiddle" /></td>
                                     <td width="65" align="center" bgcolor="#D8EECC" class="HeadList" style="padding:0px">Tipo</td>
                                      <td width="68" align="center" bgcolor="#D8EECC" class="HeadList" style="padding:0px">Ver</td>
                                    </tr>
                                  <?php
                                    
//BUSQUEDA DE LOS REGISTROS DEL PACIENTE
                                    
for ($i=0$i<$num$i++) {
                                    
$idpacientemysql_result($rs,$i,"paciente_id");
                                    
$nompacientemysql_result($rs,$i,"paciente_nombre");
                                    
$apepacientemysql_result($rs,$i,"paciente_apellidos");
                                    
$nacimientomysql_result($rs,$i,"paciente_fecha_nacimiento");
                                    
$flagpacientemysql_result($rs,$i,"paciente_flag_estado");
                                    
$registromysql_result($rs,$i,"paciente_fecha_registro");
                                  
?>
                 <tr><td height="1" colspan="9" bgcolor="#D2E4D4"></td></tr>
                                      <tr bgcolor="#FFFFFF" style="cursor:pointer" onMouseOver="this.style.background='#FDFBE7';" onMouseOut="this.style.background='#FFFFFF'">
                                      <td height="22" align="center" bgcolor="#BEE3A8"><img src="iconos/chicos/categorias_16.png" alt="" width="16" height="16" border="0" align="absmiddle" /></td>
                                      <td class="ValoresList" style="font-weight:normal; font-size:10px;"><span class="ValoresList" style="font-weight:normal; font-size:10px;"><b><?php echo $nompaciente?></b></span></td>
                                      <td class="ValoresList" style="font-weight:normal; font-size:10px;"><span class="ValoresList" style="font-weight:normal; font-size:10px;"><b><?php echo $apepaciente?></b></span></td>
                                      <td class="ValoresList" style="font-weight:normal; font-size:10px;"><span class="ValoresList" style="font-weight:normal; font-size:10px;"><b><?php echo $Edad?></b></span></td>
                                      <td class="ValoresList" style="font-weight:normal; font-size:10px;"><span class="ValoresList" style="font-weight:normal; font-size:10px;"><b><?php echo $registro?></b></span></td>
                                        <td align="center">
                                      </td>
                  <td align="center"><a href="<?php echo "paciente_edition.php?urlcod=$idpaciente"?>"><img src="iconos/chicos/down.png" width="16" height="16" border="0" /></a></td>
      </tr>
                  <?php
                                      
}
                                  
?>
                  <tr><td height="1" colspan="9" bgcolor="#D2E4D4"></td></tr>
                   </table></td>
      </tr>
                  </table>    
<?php
}
?>
Y Aqui donde genero la paginacion (esta parte me funciona bien)

Código PHP:
<?php
                            
//muestro paginacion siempre y cuando hayan mas de una pagina
                            
if($total_paginas 1){
                          
?>
                            <table border="0" cellpadding="0" cellspacing="0" bordercolor="#C5B8B7">
                              <tr>
                                <td width="50" align="left" class="estiloEtiquetasFormulario">Pagina :</td>
                          <?php
                            
//imprimiendo numeros de pagina
                            //imprimir opcion de anterior si las paginas son mayores a una
                            
if($pagina 1){
                          
?>
                                      <td width="18" align="center" valign="bottom"><a href="pacientes_list.php?pagina=1" title="Primera"><img src="images/paginacion/pg-first.gif" alt="Primero" width="16" height="16" border="0" align="absmiddle" /></a></td>
                                      <td width="18" align="center" valign="bottom"><a href="pacientes_list.php?pagina=<?php echo ($pagina-1);?>" title="Anterior"><img src="images/paginacion/pg-prev.gif" alt="Anterior" width="16" height="16" border="0" align="absmiddle" /></a></td>
                                      <td width="4" align="center"></td>
                                    <?php
                                        
}
                        
                                        
//Codigo para simplificar la botonera de paginacion, para que se no se muestren todos los hipervinculos en el caso de demasiadas paginas
                                        
if ($pagina >= 4){ //Si la "pagina" es mayor que 6 procedo a establecer las cotas superior e inferior ("sup" e "inf")
                                            
$inf $pagina 3;
                                            
$sup $pagina 3;
                                        }else{ 
//En caso que la "pagina" sea menor o igual que 5, las cotas son 1 y la "pagina" mas 5
                                            
$inf 1;
                                            
$sup $pagina 3;
                                        }
                                        if(
$sup $total_paginas){ //En caso la cota superior sea mayor que el total de paginas
                                            
$sup $total_paginas//La cota superior se convierte en el total de paginas, sino sobrepasa el numero de paginas existentes mostrandolas
                                        
}
                                    
?>
                                    <?php
                                        
for($p=$inf;$p<=$sup;$p++){
                                            if(
$p == $pagina){
                                    
?>
                                      <td width="20" align="center" valign="middle" bgcolor="#D1E9C4" class="estiloTextoGeneral" style="border:solid 1px #8CCA69"><b><?php echo $p;?></b></td>
                                    <?php
                                        
}else{
                                    
?>
                                      <td width="20" align="center" valign="middle"><a href="pacientes_list.php?pagina=<?php echo $p;?>" class="listaPaginacion"><?php echo $p;?></a></td>
                                    <?php
                                            
}
                                        }
                                    
                                        if(
$pagina $total_paginas){
                                    
?>
                                          <td width="4" align="center"></td>
                                          <td width="18" align="center"> <a href="pacientes_list.php?pagina=<?php echo ($pagina+1);?>" title="Siguiente"><img src="images/paginacion/pg-next.gif" alt="Siguiente" width="16" height="16" border="0" align="absmiddle" /></a></td>
                                          <td width="18" align="center"> <a href="pacientes_list.php?pagina=<?php echo $total_paginas;?>" title="Ultima"><img src="images/paginacion/pg-last.gif" alt="Ultima" width="16" height="16" border="0" align="absmiddle" /></a></td>
                                    <?php
                                        
}
                                    
?>
                                    </tr>
                              </table>
                          <?php
                            
}
                            
//fin de imprecion de pagina
                          
?>
espero me puedan ayudar a completar la paginacion de acuerdo a mi codigo... saludos
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 23/02/2009, 09:06
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: ayuda con paginacion... porfavor

Pues la verdad yo hace rato que deje de preocuparme por la paginacion de mi sitio web, yo te recomiendo que utilices un codigo libre y fasilisimo de usar que se llama PAGINATOR este te hace la paginacion solo y te pregunta cuantos registros quieres mostrar por pagna... esta es la pagina de donde lo puedes descargar...

http://jpinedo.webcindario.com/scripts/paginator/

mucha suerte
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 23/02/2009, 09:32
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ayuda con paginacion... porfavor

Pues que puedo decir... fue una solucion excelente, el paginator se adecua perfecto a mi codificacion aunque creo que solo funciona con los bucles while, no con for. Pero hay alguna manera de cambiarle el diseño a ese paginator? ya que mi web esta basada en un diseño y no se ve bien la paginacion

gracias!
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 23/02/2009, 09:53
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ayuda con paginacion... porfavor

mmm disculpa , ya encontre el parametro para cambiar el estilo, incluso puedo poner imagenes, sensacional solucion muchas gracias denuevo!
__________________
Quitenme la vida pero no la bebida.
  #5 (permalink)  
Antiguo 23/02/2009, 11:32
 
Fecha de Ingreso: noviembre-2007
Ubicación: Madrid
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ayuda con paginacion... porfavor

Pues a mi no me funciona.
En realidad si que me funciona, pero solo en local. Y buscando información he encontrado esto. Lo he probado y obtengo el mismo resultado que haciéndolo yo mismo.

Resulta que yo estoy utilizando xajax, y no se porqué, si le pongo la cláusula LIMIT a mi sentencia sql, no me muestra ningún resultado, y sin ella, me muestra todos los resultados, pero claro, no es lo que yo quiero.

He probado Paginator y me pasa lo mismo, me funciona en local, pero cuando lo subo a servidor obtengo los mismos resultados, no me muestra ningún resultado, ni siquiera el paginado.

Solo me funciona de dos formas, una es poniendo un alert de lo que quiero mostrar (que eso no es lo que quiero), y la otra es poniendo un paginado de solo 8 registros, que tampoco es lo que quiero pero ya llevo mucho tiempo con esto.

¿Alguien tiene alguna idea de lo que me pueda pasar? todo es muy raro, un polstergueist de los que me pasan a mi. Y si es necesario les pongo código.
  #6 (permalink)  
Antiguo 31/07/2009, 12:42
 
Fecha de Ingreso: junio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ayuda con paginacion... porfavor

yo tambien lo estoy utilizando y no hace la paginación , permite navegar por las paginas segun el numero de paginas que le asigne pero no me limita la cantidad de registros que selecciono... estoy buscando sollluciones todavia
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 13:58.