Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2008, 10:50
Avatar de OsSk4R
OsSk4R
 
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 20 años
Puntos: 74
Mensaje Error con la paginación

Hola amigs, estoy intentando paginar unos resultados de un foro siguiendo un manual que me encontre en Programación, el problema es que no funciona a la perfeccion.

Lo estoy probando en localhost y veran, tengo un maximo de 12 "usuarios" en la bd y en la paginacion tengo puesto que se muestren 10 resultados por pagina.
Pero no se muestran. CUando abro la pagina para ver los resultados, me muestra los 12 usuarios que tengo...

Miren, aqui el codigo

Código PHP:
<?php
$link 
= mysql_connect("localhost", "root","pass");
mysql_select_db("bd", $link);
$result = mysql_query("SELECT autor, titulo, mensaje FROM foro", $link);
if (
mysql_num_rows($result)){
  echo 
"<table border = '1'> \n";
  echo 
"<tr><td>Autor</td><td>Titulo</td><td>Mensaje</td></tr> \n";
  while (
$row = @mysql_fetch_array($result)) {
    echo 
"<tr><td>".$row["autor"]."</td>";
        
"<td>".$row["titulo"].
      
"</td><td>".$row["mensaje"]."</td></tr> \n";
  }
  echo 
"</table> \n";
}
else
  echo 
"¡ No se ha encontrado ningún registro !";
  
  if (!isset(
$pag)) $pag = 1; // Por defecto, pagina 1
$result = mysql_query("SELECT COUNT(*) FROM foro", $link);
list(
$total) = mysql_fetch_row($result);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT autor, titulo, mensaje FROM foro  LIMIT $reg1, $tampag", $link);

/* Funcion paginar
 * actual:          Pagina actual
 * total:           Total de registros
 * por_pagina:      Registros por pagina
 * enlace:          Texto del enlace
 * Devuelve un texto que representa la paginacion
 */
function paginar($actual, $total, $por_pagina, $enlace) {
  
$total_paginas = ceil($total/$por_pagina);
  
$anterior = $actual - 1;
  
$posterior = $actual + 1;
  if (
$actual>1)
    
$texto = "<a href=\"$enlace$anterior\">&laquo;</a> ";
  else
    
$texto = "<b>&laquo;</b> ";
  for (
$i=1; $i<$actual; $i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  
$texto .= "<b>$actual</b> ";
  for (
$i=$actual+1; $i<=$total_paginas; $i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  if (
$actual<$total_paginas)
    
$texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
  else
    
$texto .= "<b>&raquo;</b>";
  return 
$texto;
}

echo 
paginar($pag, $total, $tampag, "clientes.php?pag=");
?>
Y aqui una imagen de mi prueba:


Ven?, me muestran los 12 resultados y a su vez, me da la opcion de ir a la siguien pagina, para seguir mostrando resultados, pero no funciona. ¿¿Que falla???

Si eso, pruebenlo y verán.

Muchas gracias antetodo!!

PD: Se me olvidaba...porque no se muestra el titulo y el mensaje??
Gracias,