Foros del Web » Programando para Internet » PHP »

paginacion en php controlar el # de paginas

Estas en el tema de paginacion en php controlar el # de paginas en el foro de PHP en Foros del Web. Hola tengo el siguiene codigo para obtener una paginacion : $consulta = mysql_query('SELECT * FROM pagos',$conexion) or die('no se pudo realizar la consulta'.mysql_error()); $num_registros = ...
  #1 (permalink)  
Antiguo 24/06/2013, 10:23
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 4 meses
Puntos: 0
paginacion en php controlar el # de paginas

Hola tengo el siguiene codigo para obtener una paginacion :

$consulta = mysql_query('SELECT * FROM pagos',$conexion) or die('no se pudo realizar la consulta'.mysql_error());
$num_registros = mysql_num_rows($consulta);

$registros = 10;
$pagina = $_GET['num'];

if(is_numeric($pagina))
$inicio = (($pagina-1)*$registros);
else
$inicio = 0;

$resetcodigo = mysql_query("ALTER TABLE pagos AUTO_INCREMENT = 1");// Resetear el codigo cuando empieze desde 1
$consulta2 = mysql_query("SELECT * FROM pagos LIMIT $inicio,$registros",$conexion);
$paginas = ceil($num_registros/$registros);


echo '<nav class="navegacion">
<ul>
<li><a class="a_li" href="../index.html">Inicio</a></li>
<li><a class="a_li" href="pacientes.php">Pacientes</a></li>
<li><a class="a_li" href="pagos.php">Pagos</a></li>
<li><a class="a_li" href="citas.php">Citas</a></li>
<li><a class="a_li" href="entradas_salidas.php">Entradas-Salidas</a></li>
<li><a class="a_li" href="productos.php">Productos</a></li>
<li><a class="a_li" href="abonos.php">Panel de Clientes</a></li>
<ul>
</nav>';


echo'
<form action="ctrl_pagos.php" method="POST">
<table>
<tr><div id="div_brsuperior" background="blue">Control Pagos</div></tr>
<div id="div_brnewpaciente"><a class="fancy_formpagos" href="form_pagos.php"><label class="lbl_new"><img src="../imagenes/im_add.png" id="im_add">Nuevo </label></a></div>
<tr id="tr_im_titulos">
<td>Codigo</td>
<td>Nombre</td>
<td>Fecha</td>
<td>Valor</td>
<td colspan="2">Acciones</td>
</tr>';

while($resultado = mysql_fetch_array($consulta2)){
echo'
<tr>
<td class="td_codigo_centrar">'.$resultado['codigo_pg'].'</td>
<td>'.$resultado['nombre'].'</td>
<td>'.$resultado['fecha'].'</td>
<td>'.$resultado['valor'].'</td>
<td><a href="pagos_update.php?var='.$resultado['codigo_pg'].'"><img src="../imagenes/im_modificar.png" title="Modificar Registro"></td>
<td><a href="pagos_delete.php?var='.$resultado['codigo_pg'].'" onclick=" return ConfirmDelete()"><img src="../imagenes/im_eliminar.png" title="Eliminar Registro"></td>
</tr>';
}

echo '</table>';
echo '</form>';
echo '<div id="div_brinferior">'; // borde inferior*********

if($pagina > 1)
echo "<a href='pagos.php?num=".($pagina-1)."'><img src='../imagenes/im_back.gif' id='im_back'></a> ";

for($contador=1;$contador <= $paginas;$contador++)
{
if($contador == $pagina)
echo $contador.'<img src="../imagenes/im_actual.png">';

else
echo "<a href='pagos.php?num=".$contador."'><input type='button' value='$contador'></a> ";
}

if($pagina < $paginas)
echo "<a href='pagos.php.php?num=".($pagina+1)."'><img src='../imagenes/im_next.gif' id='im_back'></a> ";
echo '</div>'; // cierre borde_inferior*********
_____________________________________________
lo que falta controlar es el Numero de paginas q se van a mostrar.
como se puede ver despues de 10 registros se crea una pagina Nueva
me explico:
en caso de 100 registros se mostraria 10 paginas cada una con sus respectivos 10 registros:

1-2-3-4-5-6-7-8-9-10
el inconveniente es que si aumenta el numero de paginas estas se van a mostrar sin ningun control

1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19 ..........

lo que quiero es que si hay 15 paginas se muestren solo 10 y una flechita para avansar, en donde seria algo asi :
< 2-3-4-5-6-7-8-9-10-11 >
< 3-4-5-6-7-8-9-10-11-12 >

como puedo hacer esto ?

ya q en caso de haber 1000 registros serian: 100 paginas me abarcaria todo el ancho de la pantalla jajaj

mientras q mostrar solo de a 10 e ir aumentando creo q asi deve ser .
  #2 (permalink)  
Antiguo 25/06/2013, 00:02
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: paginacion en php controlar el # de paginas

if($pagina < $paginas)
echo "<a href='pagos.php.php?num=".($pagina+1)."'><img src='../imagenes/im_next.gif' id='im_back'></a> ";
echo '</div>'; // cierre borde_inferior*********

modifica el código anterior, ponlo dentro de un for de manera que sólo se repita x veces. Luego agregas la flecha de avnazar o retroceder.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 26/06/2013, 09:54
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: paginacion en php controlar el # de paginas

Hola gracias por responder. pero todavia no doy con la cosa

el problema va q si lo pongo dentro de un for suponiendo q sean 3 paginas se me repite el numero de paginas ejm:

11111111122222222223333333333.... etc...

Etiquetas: controlar, html, mysql, paginacion, 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 03:43.