Foros del Web » Programando para Internet » PHP »

Paginación PHP

Estas en el tema de Paginación PHP en el foro de PHP en Foros del Web. Hola amigos, necesito su ayuda para poder hacer que la funcion que estoy realizando pueda paginar los resultados que obtiene de la consulta, pero no ...
  #1 (permalink)  
Antiguo 07/04/2014, 17:15
 
Fecha de Ingreso: octubre-2013
Ubicación: Loreto, Zacatecas
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Paginación PHP

Hola amigos, necesito su ayuda para poder hacer que la funcion que estoy realizando pueda paginar los resultados que obtiene de la consulta, pero no la he podido hacer funcionar correctamente, les pido su ayuda por favor.

Gracias.

Código PHP:
function listar(){
$numero="SELECT count(idUsuario) FROM usuario";//contamos
$conteo=mysqli_fetch_assoc($this->conn, ($numero));
$total_conteo$conteo['Total'];//aqui ya tenemos el total de los registros
$resultados_pagina5;// numero de resultados por pagina
$total_paginasceil($total_conteo/$resultados_pagina);
$paginaintval($_GET['p']);//pagina actual
if ($pagina || $pagina $total_paginas$pagina=1;
$pos=($pagina 1) * $resultados_pagina;//posicion
$limite"LIMIT $pos, $resultados_pagina";//fin de la configuracion de la paginacion

$sql="SELECT idUsuario, NombreTipoCliente, NombreUsuario, NombreReal, Apellidos, Nacimiento, Sexo, 
Estado, Municipio, Direccion, Correo, Telefono, Contrasenia
, FechaRegistro FROM catalogo_usuario INNER JOIN usuario
 ON idCatalogoUsuario = fk_idCatalogoUsuario $limite"
;
$rs=mysqli_query($this->conn$sql);
$i=0;
if(
mysqli_num_rows($rs)<1){
echo 
"No hay clientes registrados";
}else{
echo 
"<table border='0' align='center' class='flat-table flat-table-1'>";
echo 
"<thead>
<th>Permisos</th>
<th>Usuario</th>
<th>Nombre</th>
<th>Sexo</th>
<th>Estado</th>
<th>Municipio</th>
<th>Dirección</th>
<th>Telefono</th>
<th>Modificar</th>
<th>Eliminar</th>
</thead>"
;
while (
$row mysqli_fetch_array($rs)){
echo 
"<td align='center'>".$row["NombreTipoCliente"]."</td>";
echo 
"<td align='center'>".$row["NombreUsuario"]."</td>";
echo 
"<td align='center'>".$row["NombreReal"]."</td>";
echo 
"<td align='center'>".$row["Sexo"]."</td>";
echo 
"<td align='center'>".$row["Estado"]."</td>";
echo 
"<td align='center'>".$row["Municipio"]."</td>";
echo 
"<td align='center'>".$row["Direccion"]."</td>";
echo 
"<td align='center'>".$row["Telefono"]."</td>";

echo 
'<td align="center">
<a class="fancybox fancybox.iframe" href="../fancy/mod_usuario.php?id='
.$row["idUsuario"].'&nombretipocliente='.$row["NombreTipoCliente"].
'&nombreusuario='.$row["NombreUsuario"].'&nombrereal='.$row["NombreReal"].
'&apellidos='.$row["Apellidos"].'&nacimiento='.$row["Nacimiento"].
'&sexo='.$row["Sexo"].'&estado='.$row["Estado"].'&municipio='.
$row["Municipio"].'&direccion='.$row["Direccion"].'&correo='.$row["Correo"].'&telefono='.$row["Telefono"].'&contrasenia='.$row["Contrasenia"].'
&fecharegistro='
.$row["FechaRegistro"].'" >Editar</a></td>';
echo 
"<td><a href='../control/controlador_usuario.php?eliminar=si&codigo=".$row["idUsuario"]."'>Eliminar</a></td></tr>";
$i++;
}
}
echo 
"</table>";
//Paginación
$links=10;//numero de links de paginas a mostrar

echo "<a title='Start' href='?p=1'>< < Inicio</a> ";//inicio
if ($pagina>1) echo "</a><a title='Anterio' href='?p=".($pagina-1)."'> < < Anterior </a> "//Anterior

for ($i $pagina$i <= $total_paginas && $i<=($pagina $links); $i++) {
      if (
$i == $pagina) echo "<strong>$i - </strong>";//no se imprimen en el enlace
      
else echo "</a><a title='pagina $i' href='?p=$i'>$i</a> - ";//link
}

if ((
$pagina+$links)< $total_paginas) echo "..."//etcetera...
if ($pagina<$total_paginas) echo "<a title='Siguiente' href='?p=".($pagina+1)."'> Siguiente >>  ";//Siguiente
echo "<a title='Fin' href='?p=$total_paginas'>Fin >></a>";//fin

  #2 (permalink)  
Antiguo 07/04/2014, 18:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Paginación PHP

Qué es lo que no funciona?, obtienes algún mensaje de error?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/04/2014, 18:41
 
Fecha de Ingreso: octubre-2013
Ubicación: Loreto, Zacatecas
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Paginación PHP

Cita:
Iniciado por Triby Ver Mensaje
Qué es lo que no funciona?, obtienes algún mensaje de error?
Lo que no me funciona es que me muestre el numero de paginacion, solo me muestra el inicio y el fin de esta manera < < Inicio Fin >>, cuando deberia de mostrar asi < < Inicio 1 2 Fin >>
  #4 (permalink)  
Antiguo 07/04/2014, 18:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Paginación PHP

Aquí va una idea, mostrando 9 páginas, de forma que la actual se muestre en medio cuando sea posible, en seudo-código y asumiendo algunos resultados:

Código:
pag_lados = 4
pag_total = 20
pag_actual = 5

si pag_total < ((pag_lados * 2) + 1) {
      // No calculamos si no es necesario
      inicio = 1
      fin = pag_total
} else {
      // Calculamos y ajustamos si sobrepasamos los límites
      inicio = pag_actual - pag_lados
      si inicio < 1 {
            inicio = 1
      }
      fin = inicio + (pag_lados * 2)
      si fin > pag_total {
           fin = pag_total
           inicio = fin - (pag_lados * 2)
      }
}

// Mostrar página de inicio y página anterior solo si pag_actual es mayor que 1
si pag_actual > 1 {
      echo "Inicio" // Cada una con su enlace, obviamente
      echo "Anterior"
}

// Ahora mostramos los enlaces de cada página
for i = inicio; i <= fin; i++ {
       echo i // con su respectivo enlace
}

// Mostrar página siguiente y final solo si pag_actual es menor que pag_total
si pag_actual < pag_total {
       echo "Siguiente"
       echo "Fin"
}
Debería funcionar... o eso creo!
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 07/04/2014, 19:25
 
Fecha de Ingreso: octubre-2013
Ubicación: Loreto, Zacatecas
Mensajes: 24
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Paginación PHP

Cita:
Iniciado por Triby Ver Mensaje
Aquí va una idea, mostrando 9 páginas, de forma que la actual se muestre en medio cuando sea posible, en seudo-código y asumiendo algunos resultados:

Código:
pag_lados = 4
pag_total = 20
pag_actual = 5

si pag_total < ((pag_lados * 2) + 1) {
      // No calculamos si no es necesario
      inicio = 1
      fin = pag_total
} else {
      // Calculamos y ajustamos si sobrepasamos los límites
      inicio = pag_actual - pag_lados
      si inicio < 1 {
            inicio = 1
      }
      fin = inicio + (pag_lados * 2)
      si fin > pag_total {
           fin = pag_total
           inicio = fin - (pag_lados * 2)
      }
}

// Mostrar página de inicio y página anterior solo si pag_actual es mayor que 1
si pag_actual > 1 {
      echo "Inicio" // Cada una con su enlace, obviamente
      echo "Anterior"
}

// Ahora mostramos los enlaces de cada página
for i = inicio; i <= fin; i++ {
       echo i // con su respectivo enlace
}

// Mostrar página siguiente y final solo si pag_actual es menor que pag_total
si pag_actual < pag_total {
       echo "Siguiente"
       echo "Fin"
}
Debería funcionar... o eso creo!
Gracias, me guiare de la forma en lo que lo has planteado

Etiquetas: fecha, mysql, registro, select, sql
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 22:26.