Foros del Web » Programando para Internet » PHP »

Ayuda con paginación de resultados

Estas en el tema de Ayuda con paginación de resultados en el foro de PHP en Foros del Web. Hola a todos y gracias por la ayuda de antemano. Bien, tengo el siguiente código Código HTML: <style type= "text/css" > <!-- .Estilo9 {font-family: Verdana, ...
  #1 (permalink)  
Antiguo 08/03/2009, 02:51
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con paginación de resultados

Hola a todos y gracias por la ayuda de antemano. Bien, tengo el siguiente código
Código HTML:
<style type="text/css">
<!--
.Estilo9 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
-->
</style>
<?
// Datos de conexión a la base
$base="***";
$con=mysql_connect(localhost,***,***);
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=5; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM mitabla where id_zona='$_REQUEST[id]' ORDER BY fecha desc, id_miregistro desc LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM mitabla ORDER BY fecha";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

?> 
<table width="500" border="0">
  <tr class="Estilo9">
    <td width="65"><div align="left"><strong>&gt; Fecha</strong></div></td>
    <td width="110"><div align="left"><strong>&gt; Registro</strong></div></td>
    <td width="80"><div align="left"><strong>&gt; Categoria </strong></div></td>
  </tr>
  <tr class="Estilo9">
    <td colspan="3"><? while($array = mysql_fetch_array($cad)) { ?>
	<table width="100%"  border="0">
      <tr class="Estilo9">
        <td width="50"><?php echo $array['fecha']; ?></td>
        <td width="110"><div align="left"><a href="<?php echo $array['registro']; ?>/<?php echo $array['id_registro']; ?>.html"><?php echo $array['registro'].""; ?></a></div></td>
        <td width="80"><div align="left"><?php echo $array['id_categoria']; ?></div></td>
      </tr>
    </table><? } ?>
  </tr>
</table>
	<?
// Imprimiendo los resultados
 


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

// Creando los enlaces de paginación
echo "<p class=Estilo9>";
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>";
?> 
El código funciona perfectamente salvo por 2 motivos.
- Los enlaces de la paginación es decir para ir a las distintas páginas de resultados no me recogen la variable de la zona (id=zona) a la que pertenecen los resultados
- el número 3 no me aparece es decir cuando pagina aparece 1 2 4 5

Espero haberme explicado bien
  #2 (permalink)  
Antiguo 08/03/2009, 05:41
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con paginación de resultados

En realidad el 5 tampoco me aparece sale así

1 2 4 6
  #3 (permalink)  
Antiguo 08/03/2009, 07:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con paginación de resultados

Esto es en realidad un problema de programación en PHP y no de bases de datos.
MySQL no es un lenguaje de programación (como no lo son ni Oracle, Posgre o MSSQL Server), por lo que no interviene directamente en la paginación, especialmente en el contexto que estás buscando y sobre todo por la forma de las consultas realizadas.

Si lo que tienes es un problema con la ejecución de un script de PHP, eso lo deberías preguntar en el Foro de PHP, donde te responderán mejor. Allí están los expertos en el área y ellos te responderán mejor...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 09/03/2009, 07:58
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con paginación de resultados

He conseguido resolver el primer problema, ya sólo me faltaría el segundo problema... la paginación me sigue saliendo 1 2 4 6 8 pero si pulso en los enlaces anterior y posterior si me navega por la pagina 3 y 5.

A ver si alguien me puede echar un cable.

Gracias
  #5 (permalink)  
Antiguo 10/03/2009, 09:02
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con paginación de resultados

nadie me puede ayudar?? venga que seguro hay alguien que sabe donde está el problema... gracias!!
  #6 (permalink)  
Antiguo 12/03/2009, 09:25
 
Fecha de Ingreso: febrero-2009
Ubicación: Santa fe
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Ayuda con paginación de resultados

hola, nose si ya solucionaste el problema de que te sale 1 2 4 6??? Pero si haces un seguimiento del for, te vas a dar cuenta que estas alterando el valor de i al momento de mostrarlo. La solucion seria que no hagas i= i+1; sino que cuando lo mostras en el echo directamente pone -- echo "<a href\='$PHP_SELF?pag=".$i+1 .">

Espero que no sea muy tarde... saludos!
  #7 (permalink)  
Antiguo 12/03/2009, 09:48
 
Fecha de Ingreso: febrero-2009
Ubicación: Santa fe
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Ayuda con paginación de resultados

te kedaria asi...
Código php:
Ver original
  1. for ($i=1; $i <= $cantidad_paginas; $i++) {
  2.         if ($i == $pagina) {
  3.                 echo "<b> ".$i ."</b>";
  4.            
  5.         } else {
  6.                 echo "<a href=\"$PHP_SELF?pagina=$i\">".$i ."</a>";
  7.             }
  8.     }

Última edición por candyvf; 12/03/2009 a las 09:58 Razón: arregle el codigo
  #8 (permalink)  
Antiguo 14/03/2009, 02:12
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con paginación de resultados

muchísimas gracias! no llegas tarde, aún no había conseguido solucionarlo. Gracias de veras
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 03:20.