Foros del Web » Programando para Internet » PHP »

Paginación cambiante segun SELECT

Estas en el tema de Paginación cambiante segun SELECT en el foro de PHP en Foros del Web. Hola, Comento, tengo esta paginación con PHP para los resultados de la tabla MySQL, pero el problema que tengo es que al cambiar las opciones ...
  #1 (permalink)  
Antiguo 16/03/2012, 11:33
Avatar de S0SPE  
Fecha de Ingreso: noviembre-2011
Ubicación: Barcelona
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Paginación cambiante segun SELECT

Hola,

Comento, tengo esta paginación con PHP para los resultados de la tabla MySQL, pero el problema que tengo es que al cambiar las opciones (mostrar Juegos según categoria..) y la paginación contiene menos resultados, siguen apareciendo el mismo número de paginas.

El problema es que siempre utilizo la misma consulta para paginar, pero deberia adaptar la consulta de paginar al select de cada IF, y eso es lo que no se como hacer xD

Código PHP:
$sql "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc ASC";
            
$query  mysql_query($sql);
            
$total_registres mysql_num_rows($query);
        
            
$registres_per_pagina 9;
            
$total_pagines ceil($total_registres $registres_per_pagina);
            
$pagina intval($_GET['pag']);
            if (
$pagina || $pagina $total_pagines){
                
$pagina 1;
            }
            else {
                
$offset = ($pagina 1) * $registres_per_pagina;
            }
        
            
$limit "LIMIT $offset, $registres_per_pagina";    

$opcio $_GET['opt'];
            if (
$opcio == 'n'){
                
$sql "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc ASC $limit";
            }
            elseif (
$opcio == 'nd'){
                
$sql "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc DESC $limit ";
            }
            elseif (
$opcio == 'pa'){
                
$sql "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Preu ASC $limit ";
            }
            elseif (
$opcio == 'pd'){
                
$sql "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Preu DESC $limit ";
            } 
Nota: Falta codigo de los IFs i el ECHO de las paginas.

Espero haberme explicado,
Saludos y gracias!
  #2 (permalink)  
Antiguo 16/03/2012, 11:59
Avatar de xxxivanxxx  
Fecha de Ingreso: julio-2010
Ubicación: /home
Mensajes: 114
Antigüedad: 9 años, 6 meses
Puntos: 21
Respuesta: Paginación cambiante segun SELECT

puede ser por que tu "paginacion" la estas realizando solo de la primera consulta ('las otras consultas las estas realizando despues que no son tomadas en cuenta'); en todo caso tendrias que ponerla al final.

supongo que usas esto:

Código PHP:
Ver original
  1. $sql = "SELECT Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc ASC";

para poder tener el numero total de paginas. pero no lo tomas del total de registros segun la diferente opcion, para dejarme entender mejor te sugiero que uses:

y
Código MySQL:
Ver original 

asi:

Código PHP:
Ver original
  1. $reg_por_pagina=10;
  2. $pagina=$_GET['pag'];
  3. $limit = $reg_por_pagina*($pagina-1);
  4.  
  5. $opcio = $_GET['opt'];
  6.             if ($opcio == 'n'){
  7.                 $sql = "SELECT SQL_CALC_FOUND_ROWS Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc ASC $limit";
  8.             }
  9.             elseif ($opcio == 'nd'){
  10.                 $sql = "SELECT SQL_CALC_FOUND_ROWS Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Nom_Joc DESC $limit ";
  11.             }
  12.             elseif ($opcio == 'pa'){
  13.                 $sql = "SELECT SQL_CALC_FOUND_ROWS Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Preu ASC $limit ";
  14.             }
  15.             elseif ($opcio == 'pd'){
  16.                 $sql = "SELECT SQL_CALC_FOUND_ROWS Codi_Joc, Imatge, Nom_Joc, Preu, Oferta, PEGI, Genere, Data_Publicacio FROM jocs ORDER BY Preu DESC $limit ";
  17.             }
  18. $total_registros_sin_limit = mysql_fetch_array(mysql_query("SELECT FOUND_ROWS() as total"));
  19. $total_paginas=ceil($total_registros_sin_limit['total']/$reg_por_pagina);
con esto tendras los datos necesarios para mostrar tu paginacion con los datos correctos segun cada consulta :D
__________________
<?="Hello World"?> -> si te gustÓ dale +1

Última edición por xxxivanxxx; 16/03/2012 a las 12:17
  #3 (permalink)  
Antiguo 17/03/2012, 12:24
Avatar de S0SPE  
Fecha de Ingreso: noviembre-2011
Ubicación: Barcelona
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Paginación cambiante segun SELECT

Yeah! Funciona! :)

De hecho antes tenia algo similar con un COUNT() as Total, pero claro, no es lo mismo xd

Saludos y gracias!

Etiquetas: mysql, paginacion, select
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 10:57.