¿Cómo mostrar los resultados de una consulta extensa en varias partes en PHP?

Nuevamente una pregunta. En esta oportunidad queremos saber como mostrar los resultados de una consulta extensa en varias partes, es decir que haya un botón o enlace que lleve a los sgtes, por ej, 10 resultados próximos.

1 respuesta

Respuesta
1
Encantado de responderos otra vez. En la siguiente página web tienes un código de ejemplo que hace exactamente lo que buscas:
http://programacion.com/php/codigo/34/
La clave está en la consulta:
$pegar = \"SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad\";
Tienes una variable que indica qué página tienes que mostrar. A partir de esa variable seleccionas con LIMIT los registros que se deben mostrar en cada página. Por último averiguas cuantos registros hay en total, y creas los enlaces al resto de páginas.
El código es bastante sencillo. Si no entiendes algo me lo preguntas.
Hola, la página que nos mandaste no esta accesible, pero del código que nos diste para leer no entendemos que llevaría la vble $inicial y $cantidad, y por medio de que mecanismo me llevaría a los próximos registros, si es por medio de un botón o enlace.
Gracias
Yo no tengo ningún problema para entrar en ese enlace tal cual os lo he pasado.
De todas formas os voy a poner el código.
<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?
// Datos de conexión a la base
$base=\"nombredelabase\";
$con=mysql_connect(servidor,usuario,password);
mysql_select_db($base,$con);
if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;
$pegar = \"SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad\";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = \"SELECT * FROM tabla ORDER BY titulo\";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array[\'titulo\'].\"<br>\";
}
// Cerramos la conexión a la base
$con=mysql_close($con);
// Creando los enlaces de paginación
echo \"<p>\";
if ($pg <> 0)
{
$url = $pg - 1;
echo \"<a href=\'paginar.php?pg=\".$url.\"\'>« Anterior</a> \";
}
else {
echo \" \";
}
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo \"<font face=Arial size=2 color=ff0000><b> $i </b></font>\";
}
else {
echo \"<a href=\'paginar.php?pg=\".$i.\"\'>\".$i.\"</a> \";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo \"<a href=\'paginar.php?pg=\".$url.\"\'>Siguiente »</a>\";
}
else {
echo \" \";
}
echo \"</p>\";
?>
</body>
</html>
La línea que os puse antes que no entendéis es parte de ese código, sin el código es normal que no la entendieseir. Ahora no tendréis problemas.
La variable $inicial indica a partir de qué resultado de la consulta se empieza a mostrar, y $cantidad indica cuántos resultados se muestran, en vuestro caso será 10, pero podéis poner 20 o los que queráis.
Os he copiado el código de ejemplo tal cual aparece en la web que os he indicado. Revisadlo y si no entendéis algo aquí estoy para ayudaros. Ahora tenéis que adaptar ese código a vuestra aplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas