Foros del Web » Programando para Internet » PHP »

Sesiones y paginador de búsqueda

Estas en el tema de Sesiones y paginador de búsqueda en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/04/2010, 16:45
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años, 8 meses
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
  #2 (permalink)  
Antiguo 30/04/2010, 14:29
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 21 años
Puntos: 89
Respuesta: Sesiones y paginador de búsqueda

¿Y si en vez de pasar la búsqueda por sesiones, la pasas por url?

Tendrías que hacer algo como

Ej :

Código PHP:
Ver original
  1. echo "<a href=\"busca.php?busqueda=".$animal_a_buscar."&num=".$num_pag."\">";

Luego lo recuperas con :

Código PHP:
Ver original
  1. $search = $_GET['busqueda'];

Pero es extraño lo de las sesiones, no veo nada extraño D:!
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 30/04/2010, 15:59
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 17 años
Puntos: 68
Respuesta: Sesiones y paginador de búsqueda

yo lo haría como dice spider boy, o al menos es la forma en que yo lo he hecho y va mejor, que andar "ensuciando" las variables de sesión para algo que no tiene valor en dicha sesión.
__________________
No diseñes usando tablas.
  #4 (permalink)  
Antiguo 03/05/2010, 23:13
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 11 meses
Puntos: 10
Respuesta: Sesiones y paginador de búsqueda

Te recomiendo 100% utilizar la clase phpPaging que ahorra un monton de trabajo a la hora de paginar , es sencillo de utilizar y lo hace por url.
http://phppaging.phperu.net/

Por ultimo hace tiempo que no lo utilizo y parece que no se actualizado desde 2008, la paginacion final queda identica al modo en que trabaja oscommerce.

Etiquetas: paginador, sesiones
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 05:15.