Foros del Web » Programando para Internet » PHP »

problemas con paginacion de resultados del buscador (metodo POST)

Estas en el tema de problemas con paginacion de resultados del buscador (metodo POST) en el foro de PHP en Foros del Web. Hola amigos, estoy en aprietos y esta vez no entiendo lo que pasa. Bueno le puse un buscador a la web que estoy haciendo, funciona ...
  #1 (permalink)  
Antiguo 29/04/2010, 02:36
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 10 años, 2 meses
Puntos: 2
Pregunta problemas con paginacion de resultados del buscador (metodo POST)

Hola amigos, estoy en aprietos y esta vez no entiendo lo que pasa.

Bueno le puse un buscador a la web que estoy haciendo, funciona bien el buscar, pero así sin paginacion obviamente me tira todas las coincidencias, debo ponerle un paginador. El cual ya lo tenía, pero lo tenía para pasar con metodo get el id del registro en la base de datos ¿me explico? en fin.
Ahora, cuando hago la consulta de la búsqueda, por ejemplo busco "Perro" que en mi base de datos hay una sola coincidencia, me aparece el resultado solo, es decir realizó bien la búsqueda.
El problema es del paginador me parece que es, aunque no se si tambien la consulta ya que en la parte donde en el caso donde sale un solo resultado no deberia aparecer nada porque ocupa solo una página salen paginados tooodos los registros de la base de datos. ASI:


He intentado probando todo, creo que bien puede haber conflictos con el metodo GET o POST, los LIMIT o no se que ¿Me pueden ayudar?

Acá va el codigo:

Código PHP:
<?php
$search
=$_POST["search"];
include (
'conexion.php');
$registros=8//cuantos por página
$pagina=$_POST['search'];
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 * FROM productos WHERE descripcion LIKE '%$search%'"); 
$resultado mysql_fetch_row($tabla_num);
$num_registros $resultado[0];
$paginas ceil($num_registros/$registros); 

if (
$num_registros ==0)
{
    echo 
'<div id="noprod">No se han encontrado productos en esta categoría<br /> <a href="javascript:history.back()"><img src="images/flecha_atras.gif" alt="<-" />Atrás</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> ';

?>
Saludos
  #2 (permalink)  
Antiguo 29/04/2010, 03:07
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 10 años, 2 meses
Puntos: 26
Respuesta: problemas con paginacion de resultados del buscador (metodo POST)

No acabo de entender el trozo del principio de:
Código PHP:
$pagina=$_POST['search']; 
if 
    (
is_numeric($pagina)) 
    
$inicio=(($pagina-1)*$registros); 
$_POST['search']; no es el texto que el usuario quiere buscar? supongo que siempre sera texto y no números... y si pone números no se descuadrara seguro la pagina?

También pasas parametros por la url, pero no veo donde los recoges ni los tratas.

Siento si me lío, pero eso es lo que me parece
  #3 (permalink)  
Antiguo 29/04/2010, 03:20
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: problemas con paginacion de resultados del buscador (metodo POST)

¿tendré que poner un campo hidden al formulario?

Este es mi formulario:

Código HTML:
<form method="post" action="buscar.php">
<input name="search" type="text" size="15" maxlength="30" />
<input name="Submit" type="Submit" value="IR" />
</form> 

En mi paginador que si funciona pero que no es para un buscador tiene asi

Código PHP:
$id $_GET['id']; //vendría siendo el POST del form
if ($id=="")

   
$id=1;
include (
'conexion.php');
$registros=8//cuantos por página
$pagina=$_GET['num']; //Acá ¿establece? la variable GET para avanzar por página??
if ($pagina==""
  #4 (permalink)  
Antiguo 29/04/2010, 03:58
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 10 años, 2 meses
Puntos: 26
Respuesta: problemas con paginacion de resultados del buscador (metodo POST)

No veo el porque de pasar un hidden por el formulario.

Prueba a poner al principio en vez de:

Código PHP:
$pagina=$_POST['search']; 
esto:

Código PHP:
$pagina=$_GET['num']; 
Busca informacion de como pasar variables por url, porque estoy casi seguro que no es asi.
  #5 (permalink)  
Antiguo 29/04/2010, 13:01
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 10 años, 2 meses
Puntos: 2
Respuesta: problemas con paginacion de resultados del buscador (metodo POST)

Lo puse así y sigue el problema tal cual no ha cambiado en nada :/

Etiquetas: metodo, paginador, post, resultados, buscadores, busquedas
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 06:02.