Ir al contenido


Foto

[RESUELTO] Paginacion de registros


  • Por favor identifícate para responder
2 respuestas en este tema

#1 gonov

gonov

    Member

  • Miembros
  • PipPip
  • 43 mensajes
  • LocationBuenos Aires

Escrito 24 noviembre 2011 - 09:19

Hola que tal tengo un problema y si alguien me puede ayudar se lo agradezco mucho.
Tengo que listar  autos y al listarlos me aprece:
  "Se encontraron 7 anuncios Publicados;
Mostrando la página 1 de 2;
Se muestran páginas de 5 registros cada una
Esto es corercto y me muestra 5 registro de la primer pagina,  pero al momento de hacer click para que me envie a la proxima pagina,y me muestre los dos registros restantes, no me muestra nada.
Les dejo el codigo y si alguien puede darme una mano se lo agardezco mucho,ya que hace dos dias que no puedo solucionar el problema.

*******************************************************************************************
<?php
require"conexion.php";
require_once"init.php";
require_once'encabezado.php';
?>
<div id="content-wrapper">
<div class="center-wrapper">
<div id="titanuncio">
<form name="frm" method="post" action="buscar-autos.php">
<fieldset id="formfiltro">
<legend><strong>Filtrar la busqueda</strong></legend>
<br>
<ol>
  <li><label for="continent">Marca</label>
  <select style="width:200px"  name ="marca" id="continent" onchange="countryChange(this);">
    <option value="emptyy">Seleccione marca</option>
    <option value="Acura">Acura</option>
    <option value="Aleko">Aleko</option>
    <option value="Alfa Romeo">Alfa Romeo</option>
    <option value="Am General">Am General</option>
  <option value="Aro">Aro</option>
    <option value="Asia">Asia</option>
  </select></li>
<li>
  <label for="country">Modelo</label>
  <select style="width:200px" name="modelo"id="country">
    <option value="0">  seleccione modelo</option>
  </select></li><br>
  <li> <strong><label><p style='strong'>Precio:</p></label> Desde <input style="width:58"type ="text"name="desde">
Hasta <input style="width:58"type ="text"name="hasta"> </label></strong></li>
<BR>
  <input type="submit" name="submit" class="btn" value="Buscar"/></label><label>
</ul>
</fieldset>
</form>
</div>
<?php
//****************************////
if(!isset($_POST['marca'])){
$marca="akura";
}else{
$marca=$_POST['marca'];
}
if(!isset($_POST['modelo'])){
$modelo="integra";
}else{
$modelo=$_POST['modelo'] ;
}
if(!isset($_POST['desde'])){
$desde="0";
}else{
$desde=$_POST['desde'];
}
if(!isset($_POST['hasta'])){
$hasta="99999999999999999999999999999999";
}else{
$hasta=$_POST['hasta'];
}
if(empty($_POST['hasta'])){
$hasta="99999999999999999999999999999999";
}else{
$hasta=$_POST['hasta'];
}
//Limito la busqueda
$TAMANO_PAGINA = 5;
//examino la página a mostrar y el inicio del registro a mostrar
@$pagina=$_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;

$ssql="SELECT * FROM `autos` where marca='$marca'and modelo='$modelo' and (precio between'$desde' and '$hasta')";
$rs=mysql_query($ssql);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA); 
//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Se ecnontraron " . $num_total_registros . " anuncios Publicados <br>"; 
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>"; 
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
//construyo la sentencia SQL
$ssql="SELECT * FROM `autos` where marca='$marca'and modelo='$modelo' and (precio between'$desde' and '$hasta')limit ". $inicio . "," . $TAMANO_PAGINA; 
$rs=mysql_query($ssql); 
while ($fila=mysql_fetch_array($rs)){
?>
    <div id="anuncio">
<img src="img/<?php echo $fila['foto'];?>"width="118"height="118"/>
<div id="detalle"><h3><a href ="#"><?php echo $fila['marca'];?>  <?php echo $fila['modelo'];?> </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#">Anio: <?php echo $fila['anio'];?></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#">$<?php echo number_format($fila['precio']);?></a></h3>
<hr>
<li>Combustible :  <?php echo $fila['combustible'];?></li>
<li> Kilometros :  <?php echo $fila['kilometros'];?></li>
<li>  Color : <?php echo $fila['color'];?></li>

<p> <?php echo $fila['detalles'];?>....  <a href="detalles.php?cod=<?php echo $fila['id_auto'];?>">Leer mas</a> </p>
</div>
</div>
<?php
}
//cerramos el conjunto de resultado y la conexión con la base de datos
mysql_free_result($rs); 
echo mysql_error();
//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
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='buscar-autos.php?pagina=" . $i ."'>". $i ."</a> ";
}
}
?>
</div>
<br>
</div>
<?php
require_once'pie.php';
?>
</div>
<br>
</div>
<?php
require_once'pie.php';
?>

  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 25 noviembre 2011 - 07:52

Pues esta mal planteada el enlace de los indices, tu lo haces por pagina y no debe ser asi, se supone que la consulta es el que hace la paginacion, lo que debes hacer es hacer el LIMIT a partir del ultimo registro + 1, por ejemplo:

$desde = $_GET['desde'];
$maximo = 30;
$query = 'SELECT * FROM AUTOS LIMIT ' . $desde .',' . $maximo .';


Los enlaces de los indices debe ser asi:

<a href="http://www.dominio.c...o.php?desde=0"> Pagina 1</a>
<a href="http://www.dominio.c....php?desde=31"> Pagina 2</a>
<a href="http://www.dominio.c....php?desde=61"> Pagina 3</a>
etc etc....

Espero con eso tengas una idea basica.

Saludos.
  • 0

#3 gonov

gonov

    Member

  • Miembros
  • PipPip
  • 43 mensajes
  • LocationBuenos Aires

Escrito 25 noviembre 2011 - 10:45

Muchisimas gracias¡¡¡
Funcionaaaaaaa.
:D

  • 0




IP.Board spam blocked by CleanTalk.