Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2006, 08:00
oli29
 
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