Autor Tema: problema agrupacion mensajes por pagina  (Leído 385 veces)

Desconectado caha

  • PHPer@ Fijo
  • ***
  • Mensajes: 111
  • Karma: 0
    • Ver Perfil
problema agrupacion mensajes por pagina
« en: 07 de Agosto de 2009, 08:08:02 am »
lo que quiero hacer con el siguiente codigo es agrupar una consulta por orden de entrada y tener varias paginas automaticas que mueste 30 mensajes por pagina
como cuando aparece pagina <- x de y ->tengo el siguiente code per ono me va

Código: [Seleccionar]
<?
include('conectar.php');

 $PorPagina = 30;
 if ($Pagina < 1) { $Pagina = 1; }
 
 $Lista = mysql_query ("SELECT * FROM " gbook "ORDER BY id DESC");
   $Total = mysql_num_rows($Lista);

$Contador = $Total / $PorPagina; // Divide todas las filas entre las que hay en 1 pagina para sacar el numero de paginas.
    echo ("<br>Paginas: ");
    if ($Contador > 1) {
        for ($i = 0; $i < $Contador; $i++) {
            $NumPag = $i + 1;
        echo ("<a href=\"guestbook.php?=ListasErrores&Pagina=$NumPag\"> $NumPag ");
);
?>

Si sabes de alguna manera mas facil y funcional con la que se pueda hacer se acepta xD
de antemano uchas gracias

Comunidad PHPeros

problema agrupacion mensajes por pagina
« en: 07 de Agosto de 2009, 08:08:02 am »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: problema agrupacion mensajes por pagina
« Respuesta #1 en: 07 de Agosto de 2009, 14:51:18 pm »
el`primer error k veo es la query... deberia ser asi:
$Lista = mysql_query ("SELECT * FROM " gbook "ORDER BY id DESC");
para k las comillas dobles del medio?

$Contador = $Total / $PorPagina; esto podria dar decimales por eso debes usar ceil para redondearlo acia arriba
$Contador = ceil($Total / $PorPagina);
tambien deberias añadirle
if($paginas > $contador) { $paginas = $contador; } x si se pasa de paginas

for ($i = 0; $i < $Contador; $i++) {
            $NumPag = $i + 1;
        echo ("<a href=\"guestbook.php?=ListasErrores&Pagina=$NumPag\"> $NumPag ");
      );

los for se cierran con } no con );...

$NumPag = $i + 1??? puedes empezar el for desde 1 y en vez de poner <$contador poner <=$contador
y usar $i en lugar de numpag