![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
26/01/2009, 13:33
|
![Avatar de aldo1982](http://static.forosdelweb.com/customavatars/avatar81008_5.gif) | | | Fecha de Ingreso: noviembre-2004 Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años, 2 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 |