Foros del Web » Programando para Internet » PHP »

usar el LIMIT para tope de busqueda

Estas en el tema de usar el LIMIT para tope de busqueda en el foro de PHP en Foros del Web. Bueno, quería poner este post en bases de datos pero he visto que no se puede poner alli codigo, así que lo traigo a php ...
  #1 (permalink)  
Antiguo 17/12/2007, 16:08
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 16 años, 11 meses
Puntos: 3
usar el LIMIT para tope de busqueda

Bueno, quería poner este post en bases de datos pero he visto que no se puede poner alli codigo, así que lo traigo a php que al fin y al cabo esa es la duda.

Dispongo de un buscador que pagina los resultados y la paginación como vereis en el codigo la hago con LIMIT, pero quiero saber como solucionar el que en la busqueda me salgan un maximo de por ejemplo 40 registros aunque 300 coincidiesen con la busqueda. Luego por supuesto los pagino de 8 en 8 o como quiera pero que la consulta arroje un maximo.

Este es el trozo de codigo que uso y luego anexo la variable limit a la query para sacar los resultados, pero así como está me devuelve 347 registros, eso si, los pagina de 8 en 8 como le indico pero saca todos y solo quiero que saque un numero maximo.

$items = 8; // este es el numero de registros por pagina

if(isset($_GET['page']) and is_numeric($_GET['page']) and $page = $_GET['page']){
$limit = " LIMIT ".(($page-1)*$items).",$items";
}else{
$limit = " LIMIT $items";
}

Bueno, el page es una variable que envio cada vez que recargo la pagina para avanzar o retroceder entre los registros. Evidentemente si es la primera carga el page no existe.

Bueno, falta codigo pero este es el meollo. ¿podeis ayudarme a darle una solución "limpia"?

Gracias
  #2 (permalink)  
Antiguo 17/12/2007, 16:29
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: usar el LIMIT para tope de busqueda

te recomendaria ver el paginador de jpinedo
http://jpinedo.webcindario.com/scripts/paginator/
o bien el de okram
http://blog.myokram.info/post-pagina...php/index.html
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 17/12/2007, 17:41
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: usar el LIMIT para tope de busqueda

Igual mi respuesta es tonta, pero no te basta con no permitir ir más allá de la página 5?
  #4 (permalink)  
Antiguo 18/12/2007, 11:41
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 16 años, 11 meses
Puntos: 3
Re: usar el LIMIT para tope de busqueda

No porque si controlo la página queda un poco chapuza pues se ve que el resultado de la busqueda son 347 registros y cuando llego a la pagina 5 que hago??

Creo que debe haber otra solución más profesional. Imagina una base de datos con millones de registros y a alguien se le ocurre buscar ..... no se.... "las" que parece una terminación muy común. Tiene que haber una forma de que no arroje 345980 registros coincidentes.
  #5 (permalink)  
Antiguo 18/12/2007, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: usar el LIMIT para tope de busqueda

Una solución seria primero hacer la búsqueda y obtener el total de resultados, si manejas índices, almacenar la X cantidad de índices en una tabla temporal, y posteriormente hacer la paginación sobre esa tabla temporal.

Saludos.
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 07:35.