Foros del Web » Programando para Internet » PHP »

Paginacion de resultados

Estas en el tema de Paginacion de resultados en el foro de PHP en Foros del Web. Hola! Tengo una pequeña duda con respecto a paginar resultados desde una pagina en php, de una consulta mysql. Resulta que tengo productos, y quiero ...
  #1 (permalink)  
Antiguo 30/09/2008, 08:23
 
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires, Mar del plata
Mensajes: 250
Antigüedad: 16 años, 4 meses
Puntos: 2
Paginacion de resultados

Hola!
Tengo una pequeña duda con respecto a paginar resultados desde una pagina en php, de una consulta mysql.
Resulta que tengo productos, y quiero por ejemplo paginar para que haya solo 3 por pagina (cdo tenga mas seran 10, etc...)
He leido un post pero no me sale...
Les paso el codigo. Logre que me limite la consulta, pero al poner siguiente no me va al producto que falta, sino que me va a otra pagina...me parece que estoy haciendo mal el href....

Archivo: productos_paginas.php

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Back Net - Tecnología y Comunicación</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body>
<div id="contenido">
  <div id="colizq">
    <? 
    
include('config.php');
    
    function 
display_tree($root,$dblink,$linkStyle){
        
//Muestra las categorias (construida con estructuras de árbol)
        //Obtener los valores izq y der de la raiz - parametro.
        
$resultmysql_query("SELECT lft,rgt FROM secciones WHERE id=$root",$dblink);
        
$row=mysql_fetch_array($result);
        
//Empezar con una pila derecha vacia.
        
$right=array();
        
//Obtener todos los descendentes del nodo raiz.
        
$result=mysql_query("SELECT * FROM secciones WHERE lft BETWEEN ".$row["lft"]." AND ".$row["rgt"]." ORDER BY lft ASC",$dblink);
        
//Mostrar cada fila
        
while ($row=mysql_fetch_array($result)){
            
//Solo chequear la pila si hay alguno.
            
extract($row);
            if (
count($right)>0){
                
//chequear si debemos eliminar algun nodo de la pila.
                
while ($right[count($right)-1]<$row["rgt"]){array_pop($right);}
            }
            
//Mostrar el titulo del nodo indentado.
            
echo str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;',count($right))."<a href='".$_SERVER['PHP_SELF']."?id=$id#top' class='$linkStyle'>$nombre</a><br>\n";
            
//Añadir este nodo a la pila
            
$right[]=$row["rgt"];
        }
    }
    
    
$dblink mysql_connect($hostname,$username,$password)
             or die(
"Could not connect: " mysql_error());
       
mysql_select_db($databasename$dblink) or die ( mysql_error());
    
   
/*    mysql_query ("SET NAMES 'utf8'"); /* PARA EL PROBLEMA DE LOS ACENTOS */
    
?>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <? display_tree(13,$dblink,"contenido");?>
  </div>
  <div id="colder">
    <?php
    
/* Paginacion de los resultados */
    
if (!$_GET["iniciar"]) 
            { 
$iniciar 0; } 
    else     
            { 
$iniciar $_GET["iniciar"]; }
            
    
$suma $iniciar 3;  
/* Fin paginacion de los resultados */

        
if(isset($_GET["id"])){
            
$id=$_GET["id"];
            
$query="SELECT * FROM secciones WHERE id=$id;";
            
$res=mysql_query($query,$dblink);
            
$row=mysql_fetch_array($res,MYSQL_ASSOC);
            
extract($row);
            
$qDetail="SELECT e.*,s.nombre FROM productos e,secciones s  
            WHERE s.id=e.seccionid AND s.lft BETWEEN $lft AND $rgt 
            ORDER BY e.articulo DESC LIMIT $iniciar,$suma;"

                    

            
/* PAGINACION */        
                
$dif $total $suma;
                if (
$dif 0) {
                  echo 
"<a href=\"productos_paginas.php?iniciar=".$suma."\"> Pagina Siguiente </a>";
                }
            
/* PAGINACION */    
                

            
$resDetail=mysql_query($qDetail);
            if (
mysql_num_rows($resDetail)==0){
                echo 
"<p class='colderima'><br><h2>Por el momento no hay productos disponibles</span>";    
                
/*exit();*/
            
}
            
/*echo "<p name='top'>\n";*/
            
while ($row mysql_fetch_array($resDetail,MYSQL_ASSOC)){
                
extract ($row,EXTR_OVERWRITE);
                
/******************* IMPRIMIMOS LOS ARTICULOS *******************/  
                
                
echo "<p class='colderima'>CODIGO: $articulo</p>";
                
                if (
$imagen <> "")
                  {
                  
                  
$imagen "<a href=imagenes/".$imagen." rel=\"lightbox\" > <img src=imagenes/".$imagen." border='0' width='120' height='140'> </a>";
                  echo 
"<p align='left'> $imagen </p>" ;  /* Le podemos cambiar las medidas: height= 168 width= 180*/
                 
                  
}
                  else
                  {
                  echo 
"<b> No Hay Imagen para Mostrar";
                  } 
                echo 
"<p class='colderima'><h2><b> $titulo </b></h2></p>\n";
                
/*echo "<p class='colderima'> <td background=images/bola_precio.jpg width='69' height='80'><div class='precio2' align='center'> $precio </div></td></p>";*/
                
                
echo "<p class='colderima'><img src=images/dolar.gif width='15' height='15'> $precio</p><br>\n";
                
                echo 
"<p class='colderima'><p> $comment </p></p><br>\n";
        
                echo 
"<hr><br>\n"/* Linea que separa a los articulos */
                
/***************** FIN IMPRIMIMOS LOS ARTICULOS *****************/

            
}
            
/*echo "</p>\n";*/
            
        
} else {//No está establecido id en $_GET
        
        
echo "<p class='colderima'><br><h2>Elija alguna categoria.</span>";
        
        }
        
?>
  </div>
  <br />
</div>
</body>
</html>
gracias!
  #2 (permalink)  
Antiguo 30/09/2008, 10:17
 
Fecha de Ingreso: diciembre-2005
Mensajes: 7
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Paginacion de resultados

mirate estos video tutoriales de paginacion

http://www.sampsonvideos.com/video.php?video=4
http://www.sampsonvideos.com/video.php?video=5
  #3 (permalink)  
Antiguo 30/09/2008, 10:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Paginacion de resultados

Yo te recomiendo usar el Paginator de jpinedo.
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 14:15.