Foros del Web » Programando para Internet » PHP »

Paginar resultados de una base de datos

Estas en el tema de Paginar resultados de una base de datos en el foro de PHP en Foros del Web. Hola de nuevo, Expongo otra duda que tengo con respecto al codigo que necesito para que los resultados de una consulta a la base de ...
  #1 (permalink)  
Antiguo 05/10/2006, 08:00
 
Fecha de Ingreso: octubre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Paginar resultados de una base de datos

Hola de nuevo,

Expongo otra duda que tengo con respecto al codigo que necesito para que los resultados de una consulta a la base de datos se vean en pantalla paginadas con registros de 10 en 10...

Copio el archivo :

Código HTML:
<?php
$dbhost="localhost";
$dbusuario="usuario";
$dbpassword="password";
$db="basededatos";
$conexion=mysql_connect($dbhost,$dbusuario,$dbpassword);
mysql_select_db ($db,$conexion);
if (!isset($pg)) 
{
$pg = 0; // $pg es la pagina actual 
$cantidad=10; // cantidad de resultados por página 
$inicial = $pg * $cantidad; 

$pegar = "SELECT ID,Tipo,Localidad FROM Prueba ORDER BY ID LIMIT $inicial,$cantidad"; 
$cad = mysql_db_query($db,$pegar) or die (mysql_error()); 

$contar = "SELECT ID,Tipo,Localidad FROM Prueba ORDER BY ID"; 
$contarok= mysql_db_query($db,$contar); 
$total_records = mysql_num_rows($contarok); 
$pages = intval($total_records / $cantidad); 

echo "<table border ='1' align='center'>";
echo"<tr>";
echo"<td ><div align='center'><strong><font color='#d3ff00' face='Futura Lt BT' size='2'>ID</font></strong></div></td>";
echo"<td ><div align='center'><strong><font color='#d3ff00' face='Futura Lt BT' size='2'>TIPO</font></strong></div></td>";
echo"<td ><div align='center'><strong><font color='#d3ff00' face='Futura Lt BT'size ='2'>LOCALIDAD</font></strong></div></td>";
echo "</tr>";

while($o=mysql_fetch_object($cad))
{
echo "<tr>";
echo"<td><div align='center'><font color='#000000' face='Futura Lt BT'size='2'>$o->ID</font></div></td>";
echo"<td><div align='center'><font color='#000000' face='Futura Lt BT'size='2'>$o->Tipo</font></div></td>";
echo"<td><div align='center'><font color='#000000' face='Futura Lt BT'size='2'>$o->Localidad</font></div></td>";
echo"</tr>";
} 

echo"</table>\n";
}
else
echo "<div align='center'><font color='d3ff00' face='Futura Lt BT'><strong>La tabla esta vacia.</strong></font> </div>"; 

 

// Cerramos la conexión a la base 
$conexion=mysql_close($conexion); 

// Creando los enlaces de paginación 
echo "<p class=fonty>"; 
if ($pg != 0) { 
$url = $pg - 1; 
echo "<a href='$PHP_SELF?pg=".$url."'>&laquo; Anterior</a>&nbsp;"; 
} else { 
echo " "; 
} 
for ($i = 0; $i <= $pages; $i++) { 
if ($i == $pg) { 
if ($i == "0") { 
echo "<b> 1 </b>"; 
} else { 
$i = $i+1; 
echo "<b> ".$i." </b>"; 
} 
} else { 
if ($i == "0") { 
echo "<a href='$PHP_SELF?pg=".$i."'>1</a> "; 
} else { 
echo "<a href='$PHP_SELF?pg=".$i."'>"; 
$i = $i+1; 
echo $i."</a>&nbsp;"; 
} 
} 
} 
if ($pg < $pages) { 
$url = $pg + 1; 
echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente &raquo;</a>"; 
} else { 
echo " "; 
} 
echo "</p>"; 
?> 
Dudas:

A la consulta de la base de datos tambien se le incluye LIMIT o no?

El resultado de este codigo es que recibo en pantalla los 10 registros pero al darle en el enlace 2 se queda en pg=1 tengo 11 registros en la tabla por lo que deberia de aparecer 1 registro mas en la pagina 2 pero no va...

Una manita??

Gracias,

Saludos
  #2 (permalink)  
Antiguo 05/10/2006, 13:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 23
Antigüedad: 17 años, 6 meses
Puntos: 1
Deberias agregarle a $pg 10 por cada pagina que avances de esta manera el LIMIT arrancara en la pagina 2 desde 10


Enermedia
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 17:18.