Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Paginador de consulta

Estas en el tema de Paginador de consulta en el foro de PHP en Foros del Web. estimados, soy nuevo en esto y quiero que de esta consulta sólo me cargue 6 registros y los demás siguientes los cargue en un paginador ...
  #1 (permalink)  
Antiguo 25/03/2013, 09:43
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 12 años, 5 meses
Puntos: 1
Paginador de consulta

estimados, soy nuevo en esto y quiero que de esta consulta sólo me cargue 6 registros y los demás siguientes los cargue en un paginador obviamente con la pág.2 y asi sucesivamente....cómo se hace????

Código PHP:
<?php
include "conectar.php";
$consulta "SELECT * FROM productos WHERE categoriaID=".$_GET["var"];
$result mysql_query($consulta);
if (
mysql_num_rows($result)==0){
   echo(
"<div class=titulo-destacado-home>No existen productos para esta categoria</div>");  
}
if (
mysql_num_rows($result)>0){
   
$i=0;
   
$rows=mysql_num_rows($result);
   while(
$i $rows) {
   echo(
"<div class=destacados-home>
   <div class=titulo-destacado-home>"
.mysql_result($result,$i,"nombre")."</div>
   <div class=foto-destacados-home><img src=manager/images/"
.mysql_result($result,$i,"imagen")." width=160 height=114 /></div>
   <div class=precio-destacado-home>$"
.mysql_result($result,$i,"precio")."</div>
   <div class=descripcion-destacado-home>"
.mysql_result($result,$i,"descripcion")."</div>
   <div class=vermas-destacado-home><a href=ver-ficha.php?var="
.mysql_result($result$i"productoID").">Ver más</a></div>
   </div>"
);   
   
$i++;
   if (
$i>5){$i=$rows;}
   
//if ($i>5){echo ("<div id=sel-pagina><a href=producto.php>pag.2</a></div>");}
   
}
}

?>
ese es mi consulta, estoy pensando pero no llego a nada bueno :(
  #2 (permalink)  
Antiguo 25/03/2013, 09:51
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 20 años, 3 meses
Puntos: 56
Respuesta: Paginador de consulta

Holas, gusanosxr.

La paginación la puedes hacer directamente en la consulta SQL. Tu pregunta en ese caso debiera ir archivada en el foro correspondiente de base de datos. De todos modos, si estás trabajando en Mysql, investiga en google por la instrucción LIMIT.

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 25/03/2013, 09:52
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Paginador de consulta

http://www.desarrolloweb.com/articulos/1035.php
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 25/03/2013, 09:57
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Paginador de consulta

mas o menos trate de adaptarte esto

Código PHP:
Ver original
  1. $sql= "SELECT * FROM tabla ".$where." order by ".trim($campo)." ".$orden;
  2.     $result = mysql_query($sql);
  3.     $numSolicitudes = mysql_num_rows($result);
  4.    
  5.     $Salida ='';
  6.     if($numSolicitudes > 0){
  7.         //Salida de pantalla
  8.        
  9.         /*******Paginacion******/
  10.         //numero de registros por página
  11.         $rowsPerPage = 25;
  12.         //por defecto mostramos la página 1
  13.         if(isset($_POST['page'])) {        
  14.             $pageNum = $_POST['page'];
  15.         }
  16.        
  17.         //contando el desplazamiento
  18.         $offset = ($pageNum - 1) * $rowsPerPage;
  19.         $total_paginas = ceil($numSolicitudes/$rowsPerPage);
  20.    
  21.         //Cargamos los usuarios
  22.         $sql="SELECT * FROM tabla ".$where." order by ".trim($campo)." ".$orden." LIMIT ".$offset.",".$rowsPerPage;
  23.         $list = mysql_query($sql);
  24.         $listUsuarios ='';
  25.         if(count($list) > 0){
  26.             foreach($list as $reg){    
  27.                 $list.='<div class=destacados-home>
  28.   <div class=titulo-destacado-home>".mysql_result($result,$i,"nombre")."</div>
  29.   <div class=foto-destacados-home><img src=manager/images/".mysql_result($result,$i,"imagen")." width=160 height=114 /></div>
  30.   <div class=precio-destacado-home>$".mysql_result($result,$i,"precio")."</div>
  31.   <div class=descripcion-destacado-home>".mysql_result($result,$i,"descripcion")."</div>
  32.   <div class=vermas-destacado-home><a href=ver-ficha.php?var=".mysql_result($result, $i, "productoID").">Ver más</a></div>
  33.   </div>';
  34.             }
  35.         }
  36.         //Armo paginacion
  37.         if ($total_paginas > 1){
  38.  
  39.             if ($pageNum != 1){
  40.                 $echo ='<li><a title="'.$campoOrdenar.'"  class="paginate" data="'.($pageNum-1).'" alt="'.$orden.'" name="'.$where.'">Anterior</a></li>';
  41.                
  42.             }
  43.             for ($i=1;$i<=$total_paginas;$i++){
  44.                 if ($pageNum == $i){
  45.                     //si muestro el índice de la página actual, no coloco enlace
  46.                     $echo .='<li class="active"><a>'.$i.'</a></li>';
  47.                 }else{
  48.                     //si el índice no corresponde con la página mostrada actualmente,
  49.                     //coloco el enlace para ir a esa página
  50.                     $echo .='<li><a title="'.$campoOrdenar.'"  class="paginate" data="'.$i.'" alt="'.$orden.'" name="'.$where.'">'.$i.'</a></li>';
  51.                  }
  52.             }
  53.             if ($pageNum != $total_paginas){   
  54.                 $echo .='<li><a title="'.$campoOrdenar.'"  class="paginate" data="'.($pageNum+1).'" alt="'.$orden.'" name="'.$where.'">Siguiente</a></li>';
  55.             }
  56.         }
  57.     }

perfeccionalo para adaptarlo a tus necesidades... o si queres podes leer esto para hacerlo con jquery

https://github.com/infusion/jQuery-paging
  #5 (permalink)  
Antiguo 25/03/2013, 10:09
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Paginador de consulta

alex, me muestra el siguiente error

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\carrodecompras\producto.php on line 71

en esa linea sale justo la instruccion de

foreach ($list as $reg)

no entiendo bien de donde sale $reg?
  #6 (permalink)  
Antiguo 25/03/2013, 10:26
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Paginador de consulta

ok mira habia un error como te dije a la ligera adapte lo que posteaste a algo que ya tenia hecho aun ahora no estoy seguro que funcione al 100% por lo que quiza sea necesario que hagas algunas correcciones pero la lógica de lo que debes hacer está ahi con el error que te da es por lo mismo pero has los cambios necesarios con este codigo

Código PHP:
Ver original
  1. //Cargamos los usuarios
  2.         $sql="SELECT * FROM tabla ".$where." order by ".trim($campo)." ".$orden." LIMIT ".$offset.",".$rowsPerPage;
  3.         $list = mysql_query($sql);
  4.         $lista= mysql_fetch_array($list);
  5.         $listUsuarios ='';
  6.         if(count($lista) > 0){
  7.             foreach($lista as $reg){       
  8.                 $list.='<div class=destacados-home>
  9.   <div class=titulo-destacado-home>".mysql_result($result,$i,"nombre")."</div>
  10.   <div class=foto-destacados-home><img src=manager/images/".mysql_result($result,$i,"imagen")." width=160 height=114 /></div>
  11.   <div class=precio-destacado-home>$".mysql_result($result,$i,"precio")."</div>
  12.   <div class=descripcion-destacado-home>".mysql_result($result,$i,"descripcion")."</div>
  13.   <div class=vermas-destacado-home><a href=ver-ficha.php?var=".mysql_result($result, $i, "productoID").">Ver más</a></div>
  14.   </div>';
  15.             }
  16.         }
  #7 (permalink)  
Antiguo 25/03/2013, 12:05
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago de Chile
Mensajes: 164
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Paginador de consulta

gracias a todos

al final lo hice asi!!!


[PHP]
<?php
include "conectar.php";
$desde=0;
if ($_GET["var1"]!=''){
$desde=$_GET["var1"];
}
if ($desde==0){
$result = mysql_query("SELECT * FROM productos WHERE categoriaID=".$_GET['var']." ORDER BY productoID DESC");
}
if ($desde>0){
$result = mysql_query("SELECT * FROM productos WHERE categoriaID=".$_GET['var']." AND productoID<".$_GET["var1"]." ORDER BY productoID DESC");
}
$parada=0;
if (mysql_num_rows($result)>0){
$i=0;
$primero=mysql_result($result, $i, "productoID");
$rows=mysql_num_rows($result);
while($i < $rows) {
echo("<div class=destacados-home>
<div class=titulo-destacado-home>".mysql_result($result,$i,"nombre")."</div>
<div class=foto-destacados-home><img src=manager/images/".mysql_result($result,$i,"imagen")." width=160 height=114 /></div>
<div class=precio-destacado-home>$".mysql_result($result,$i,"precio")."</div>
<div class=descripcion-destacado-home>".mysql_result($result,$i,"descripcion")."</div>
<div class=vermas-destacado-home><a href=ver-ficha.php?var=".mysql_result($result, $i, "productoID").">Ver más</a></div>
</div>");
$final=mysql_result($result, $i, "productoID");
$i++;
if($i>7){$i=$rows;$parada=1;}
}
}
?>
<div class="clear"></div>
<br />
<br />
<?
$inicial=0;
if ($_GET["var2"]!=''){
$inicial=$_GET["var2"];
$inicial=$inicial+1;
}
echo("<div id=sel-pagina><a href=producto.php?var=".$_GET["var"]."&var1=".$inicial.">Atras</a>
<a href=producto.php?var=".$_GET["var"]."&var1=".$final."&var2=".$primero.">Siguente</a></div>");
?>
[PHP]

Etiquetas: mysql, paginador, registro, select, sql
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 12:25.