Foros del Web » Programando para Internet » PHP »

Paginación: solo muestra un campo

Estas en el tema de Paginación: solo muestra un campo en el foro de PHP en Foros del Web. Buenas, El siguiente codigo lo utilizo para paginar: Código PHP: <html> <body> <?php $link  =  mysql_connect ( "localhost" ,  "root" , "pass" ); mysql_select_db ( ...
  #1 (permalink)  
Antiguo 13/12/2008, 13:38
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Paginación: solo muestra un campo

Buenas,

El siguiente codigo lo utilizo para paginar:

Código PHP:
<html>
<body>
<?php
$link 
mysql_connect("localhost""root","pass");
mysql_select_db("deffer"$link);
$result mysql_query("SELECT nick, pass, email FROM usuarios"$link);
$pag $_GET['pag'];
  if (!isset(
$pag)) $pag 1// Por defecto, pagina 1
$result mysql_query("SELECT COUNT(*) FROM usuarios"$link);
list(
$total) = mysql_fetch_row($result);
$tampag 5;
$reg1 = ($pag-1) * $tampag;
$result mysql_query("SELECT nick, pass, email FROM usuarios  LIMIT $reg1, $tampag"$link);
if (
mysql_num_rows($result)){
  echo 
"<table border = '1'> \n";
  echo 
"<tr><td>Nick</td><td>Pass</td><td>Email</td></tr> \n";
  while (
$row = @mysql_fetch_array($result)) {
    echo 
"<tr><td>".$row["nick"]."</td>";
        
"<td>".$row["pass"].
      
"</td><td>".$row["email"]."</td></tr> \n";
  }
  echo 
"</table> \n";
}
else
  echo 
"¡ No se ha encontrado ningún registro !";


/* 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=");
?>
</body>
</html>
Lo que quiero hacer es que me arroje datos de una tabla llamada usuarios.
La paginación me funciona perfectamente, mostrandose el total de resltados que quiero por página.

El problema que tengo es que no sé porqué, pero sólo me muestra el primer campo, que en éste caso es nick.
Los demás campos; pass y email no me los muestra y eso que los tengo escritos y todo correctamente.

¿Que sucede para que solo me arroje un campo?
Saludos,
  #2 (permalink)  
Antiguo 13/12/2008, 14:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Paginación: solo muestra un campo

Pues a lo mejor es por esto: echo "<tr><td>".$row["nick"]."</td>";, si te fijas pones el ; al final del echo por lo que la siguiente instruccion: "<td>".$row["pass"].
"</td><td>".$row["email"]."</td></tr> \n"; se ejecuta correctamente, pero no hace nada con ella no tiene ningun echo, o asignacion ni nada, PHP la encuentra, la ejecuta y la descarta, te falta el echo al inicio de eso.

Saludos.
  #3 (permalink)  
Antiguo 13/12/2008, 14:25
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Paginación: solo muestra un campo

Que tonto que fuí
Exactamente fue lo que dices GatorV. Ahora lo dejé así y si ..

Código PHP:
echo "<tr><td>".$row["nick"]."</td><td>".$row["pass"]."</td><td>".$row["email"]."</td></tr>"
Solemos caer en los errores pas dificles y en los simples.... xD

Gracias,
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 07:35.