Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2015, 09:28
berferlo
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Problema paginando con esta select

Hola. Muchas gracias de antemano por todo lo que aportais. Aprendo mucho leyendoos.

Me veo en la necesidad de cara a la preparación del proyecto final del grado de solicitaros una ayudita.

Lo que busco es lo siguiente. Tengo esta select:

Código PHP:
$consulta "SELECT nombre, fechaCreacion, (Select Count(nombre) from usuario where idComunidad=$i) as Miembros from comunidad where idComunidad=$i ORDER BY idComunidad ASC LIMIT ".$inicio."," $TAMANO_PAGINA
Podeis comprobar que aparece la variable $i. Ya que tengo esta select dentro de un for para que me muestre todas las comunidades que tengo creadas con su respectiva fecha de creación y los miembros que hay en cada una de ellas.

Hasta aquí todo bien. Me los muestra sin ningún tipo de problema. Sucede que al mostrarme 30 comunidades como es el caso, conviene paginarlas para que me muestre unas 10 comunidades por cada página.

Tengo el siguiente código para paginar. Con selects más básicas en las que no se pasa ninguna variable y no necesitan insertarse dentro de un for para que recorra todo me funciona y me pagina sin problema. Pero al parecer este código que tengo de paginación tiene un conflicto con el for, ya que me muestra todas las comunidades directamente en la página 1, mientras que en la 2 y 3 no aparece ninguna información.

Código que uso para paginar:

Código PHP:
for($i=0;$i<=100;$i++)
            {
                
$conn=$comunidad->conectar();
                
$consulta "SELECT nombre, fechaCreacion, (Select Count(nombre) from usuario where idComunidad=$i) as Miembros from comunidad where idComunidad=$i ORDER BY idComunidad ASC LIMIT ".$inicio."," $TAMANO_PAGINA;
                
$rs $conn->query($consulta);
                while (
$row mysqli_fetch_array($rs)) 
                {
                    echo 
'<tr>';      
                    echo 
'<td><input type="radio" name="idCom" value="'.$i.'"></td>';
                    echo 
'<td>'.$row['nombre'].'</td>';
                    echo 
'<td>'.$row['fechaCreacion'].'</td>';
                    echo 
'<td>'.$row['Miembros'].'</td>';
                    echo 
'</tr>';
                }  
            }
            if (
$total_paginas 1)                       
            {
                if (
$pagina != 1
                {
                    echo 
'<a href="' $url '?pagina=' . ($pagina 1) . '"><img src="img/izq.gif" border="0"></a>';
                }
                for (
$i=1;$i<=$total_paginas;$i++) 
                {
                    if (
$pagina == $i
                    {
                    
//si muestro el índice de la página actual, no coloco enlace
                        
echo $pagina;
                    } 
                    else 
                    {
                        
//si el índice no corresponde con la página mostrada actualmente,
                        //coloco el enlace para ir a esa página
                        
echo '  <a href="' $url '?pagina=' $i '">' $i '</a>  ';
                    }
                }
               if (
$pagina != $total_paginas
               {
                   echo 
'<a href="' $url '?pagina=' . ($pagina 1) . '"><img src="img/der.gif" border="0"></a>';
               }
            } 
Adjunto imágenes de como se ve (el diseño evidentemente aun no está xD).
1ª imagen. Primera página de la paginación:
[URL="http://imageshack.com/a/img538/664/UZCoHd.gif"]Imagen 1[/URL]
2ª imagen. Como se ven las páginas que no son la 1.
[URL="http://imageshack.com/a/img911/476/HWC7iW.gif"]Imagen 2[/URL]

En resumen. Lo ideal sería que en cada página apareciesen 10 comunidades. Si necesitais alguna información os la proporciono ipso facto.

Un saludo y a ver si alguien me ilumina.