Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2010, 16:45
Ojopex2
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 2
Pregunta Sesiones y paginador de búsqueda

Hola amigos
tengo los resultados de mi campo de búsqueda y estos deben ir paginados de 8 en 8.
Aparentemente en la página de resultados sale correcto, o sea por ejemplo si busco perro me aparecen los 8 perros que le dije y 4 páginas más disponibles con perros.
Pero al hacer click en la página siguiente me aparecen TODOS los registros de la tabla pongamosle animales desde el primero y son como unas 700 paginas por lo menos. no me muestra los perros.

Procesando y pensando, debería ser que al pasar a la segunda página tiene que seguir pasando lo que se buscó a las otras páginas y eso creo que es por variables de session.

Pero no me resulta!! y si hago un print_r($_SESSION); me muestra variables con nombres antiguos que no las uso ahora.

Este es el código de la página donde tengo el buscador:

Código PHP:
<?php 
session_start
(); 
$_SESSION['search'] = $_POST["search"];
?>
<!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>.</title>
</head>
<body>

<div class="grid_2 alpha" id="lateral">
<div id="objlado">
<div  class="omega"id="motordebusqueda">
Buscar en WMF.cl
<form method="post" action="buscar.php">
<input name="search" type="text" size="15" maxlength="30" />
<input name="Submit" type="Submit" value="IR" />
</form>
.....
Y este es el código con que realiza la búsqueda:

Código PHP:
<?php 
session_start
(); 
$search $_SESSION['search'];
print_r($_SESSION); // me muestra algo asi como Array ( [buscasearch] => [search] => ) y al pasar a la segunda pagina Array ( [buscasearch] => [search] => LOQUEBUSCO ) ?> 

<!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>WMF - Comercial Los Andes S.A.</title>
</head>
<body>

<div class="container_12">

<div class="grid_10" id="contenedor">
<?php include ('includes/cabeza.php');?>
<?php 
include ('includes/menusomos.php');?>
   <!-- Inicio del contenido --->

    <div class="grid_10" id="todo">

<div class="grid_4 alpha" id="cuadro">

<div id="titulo">El Mundo de WMF</div>
<div id="subtitulo">La vida sabe a placer</div>

</div>
<!-- Fin del cuadro de color--->

<div class="grid_4" id="imginicio"><img src="images/wmf300imgtienda.jpg" alt="Topserve"/></div>
<!-- Fin del cuadro de imagen principal--->
<?php include ('includes/lateral.php');?>
<!-- Fin lateral--->
<div id="contenido">




<?php
$search
=$_POST["search"];
include (
'conexion.php');
$registros=8//cuantos por página
$pagina=$_GET['num'];
if (
$pagina=="")

   
$pagina=1;
if
    (
is_numeric($pagina))
    
$inicio=(($pagina-1)*$registros);
else
    
$inicio=0;
$tabla mysql_query("SELECT * FROM productos WHERE descripcion LIKE '%$search%' LIMIT $inicio, $registros");
(
$tabla) or die(mysql_error()); 

while (
$registro mysql_fetch_array($tabla))
{

echo 
'<div id="nido">

<div id="thumbnailprod">

<div class="grid_3"id="prod">

    <div id="fotoprod">
<a href="detalle.php?id=' 
.$registro['idproducto'] . '"><img src="scripts/timthumb.php?src=/img/imagenes/'.$registro['imagen'].'&h=90&zc=1" alt="Imagen de ' htmlentities ($registro['descripcion']) . '" >
    </div>
<div id="descprod"><a href="detalle.php?id=' 
.$registro['idproducto'] . '">' htmlentities ($registro['descripcion']) . '</a></div></div>
<div class="clear"></div>

</div>

</div>'
;
}
$tabla_num mysql_query("SELECT count(*) FROM productos WHERE descripcion LIKE '%$search%'"); 
$resultado mysql_fetch_array($tabla_num);
$num_registros $resultado[0];
$paginas ceil($num_registros/$registros); 

if (
$num_registros ==0)
{
    echo 
'<div id="noprod">No se han encontrado resultados <br /> <a href="index.php"><img src="images/flecha_atras.gif" alt="<-" />Inicio</a></div>';
    exit();
}
?>
</div>
<div class="clear"></div>
<div class="grid_6" id="paginador">
<?
if ($pagina>1)
    echo 
'<a href="buscar.php?num='. ($pagina-1) .'"> Anterior </a> ';
    
for (
$cont=1;$cont<=$paginas;$cont++)
{
    if (
$cont==$pagina)
        echo 
$cont .' ';
    else
        echo 
'<a href="buscar.php?num='.$cont.'"> '.$cont.' </a>' ;
    }
    if (
$pagina<$paginas)
    echo 
'<a href="buscar.php?num='.($pagina+1).'"> Siguiente </a> ';

?>

Última edición por Ojopex2; 06/05/2010 a las 00:34