Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2009, 04:05
Avatar de Anastasiaphp
Anastasiaphp
 
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 10 meses
Puntos: 3
Pregunta Paginado: me limita solo a 10 registros

Hola!

Estoy intentando paginar unos resultados de una consulta en PHP siguiendo un ejemplo que he visto en PHP en castellano, pero me limita la búsqueda a 10 registros, entiendo que lo que tengo mal es la consulta a la base de datos, pero no sé por qué, aquí dejo el código con las querys y la función por si alguien tiene tiempo y me puede ayudar:

Yo entiendo que con SELECT COUNT estoy extrayendo todos lo registros que hay y que después hago una SELECT normal para sacar los datos de 10 en 10, pero al final, cuando imprimo num_rows solo me aparecen 10 registros y al llamar a la función paginar, solo aparece una página.

Código PHP:
if(!isset($pag)) $pag 1;

$query_producto =
                        
"
                        SELECT COUNT (*)
                        FROM productos
                        WHERE id_relacion IN ("
.implode(",",$res_query).")
                        ORDER BY $orden
                        "
;
                        list(
$total) = mysql_fetch_row($query_producto);
                        
$tampag 10;
                        
$reg1 = ($pag-1) * $tampag;
                        
                        
$query_producto =
                        
"
                        SELECT *
                        FROM productos
                        WHERE id_relacion IN ("
.implode(",",$res_query).")
                        ORDER BY $orden
                        LIMIT $reg1, $tampag
                        "
;

                    
/******************************************************/
                    /* 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;
                    }
                    
/******************************************************/

            
                    
$result_producto=@$conn->query($query_producto);
                    
$num_rows $result_producto->num_rows;
                    
                            echo 
"Total productos: ";
                            echo 
$num_rows;

echo 
paginar($pag$total$tampag"aquíurl****.php?pag="); 
P.S: he intentado también implementar PHPPaging, de Okram, pero no lo he conseguido, me daba error.