26/01/2009, 13:33
|
| | | Fecha de Ingreso: noviembre-2004 Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses Puntos: 6 | |
Respuesta: [Apoerte] Paginacion php+mysql Cita:
Iniciado por FabianSN Bueno, aqui he hecho algo basandome en tu caso particular.
Para probarlo solo debes cambiar algunos parametros de conexion para especificar la BD y tabla a usar.
Se podría haber hecho en funcion o definiendo clases, pero preferí hacerlo sobre el mismo código para que se entienda mejor el funcionamiento.
Saludos y espero te sirva. Código PHP:
<table width="550" cellpadding="2" cellspacing="1"> <? $cn=mysql_connect("localhost","root",""); // Depende de la conexion a la BD que tenga cada usuario $db=mysql_select_db("tu_base_de_dato",$cn); // Seleccionar la BD a usar $perPage = 10; // Filas por pagina $pageplus= 6; //Cuantas paginas mostrar antes de mostrar la página final $Tabla="tabla_a_usar"; //Tabla que vas a usar para hacer la consulta // Pagina inicial if ($_GET[page]>0) { $page=$_GET[page]; } else { $page=1; } //Calcular el primer valor del parámetro a pasarle a LIMIT $inicio=$perPage*($page-1); //Calcular cantidad de páginas $sql = "SELECT count(ID) as cantidad FROM $Tabla"; $result = mysql_query($sql); if ($row = mysql_fetch_array($result)) $filas=$row[cantidad]; // Total de registros devueltos por la consulta $paginas=ceil($filas/$perPage); // Total de paginas if ($filas>0) { $sql = "SELECT * FROM $Tabla ORDER BY ID LIMIT $inicio,$perPage"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { ?> <tr> <td align="center"><? echo $row[0] ?></td> <td align="center"><? echo $row[1] ?></td> </tr> <? } echo "</table>"; if (($page+$pageplus)>$paginas) /* Si la cantidad de páginas que quedan para completar la cantidad de paginas que se debe mostrar, es menor que dicho parametro reduce la cantidad a mostrar */ $pageplus=$paginas-$page; for($n=$page+1;$n<=($page+$pageplus);$n++) { echo "<a href=\"prueba.php?page=$n\">$n</a>"; if ($n+1<=($page+$pageplus)) { //Coloca el separador (espacio y coma, en este caso) echo " ,"; } else { if (($page+$pageplus)<$paginas) { // Si el próximo es el final coloca la última página echo " ... <a href=\"prueba.php?page=$paginas\">$paginas</a>"; } } } // Que haya algun link para volver una página hacia atrás if ($page==$paginas) echo "<a href=\"prueba.php?page=".($page-1)."\">Volver a ".($page-1)."</a>"; } else { ?> <tr> <td colspan="2" id="noRows"><b>No se han encontrado registros</b></td> </tr> </table> <? } ?> hola fabian, mira la idea seria cambiar la funcion, no el uso de la misma ... me explico ?
__________________ LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA |