Affichage page par page qui prend en compte les filtres SQL

Répondre
Ovide
le 29/05/2005 à 12:20
Ovide
Bonjour,

J'utilise le superbe script d'affichage page par page présent sur le site et j'en profite pour remercier vivement son auteur.

Seulement, une chose m'embête : imaginez que j'ai 500 résultats mais qu'au moyen d'un filtre qui dit par exemple WHERE voiture>=19500 (où le prix des voitures est supérieur ou égal à 19500 euros), je n'affiche réellement que 250 résultats, le script me donnera tout de même par exemple 10 pages où naviguer alors que seulement 5 seront remplies de résultats (les 5 suivantes seront vides...)

N'étant qu'un tout petit adapteur en php, je ne sais pas comment indiquer au script qu'il ne doit me faire du multi-pages qu'à partir des résultats que je veux vraiment afficher.

Merci pour votre aide !

Ovide
moogli
le 29/05/2005 à 12:43
moogli
Salut,

il faut que tu base ton script sur le nombre de résultat retourné et nom sur celui du nombre de tuple dans ta base !

pour cela mysql_num_rows est ton amie ;)

@+
Il en faut peu pour être heureux !!!!!
Bzh
le 29/05/2005 à 12:43
Bzh
Fais une requette du style

SELECT count(*) FROM ta_table WHERE ce_que_tu_veux


Elle te retournera un seul résultat qui sera le nombre de résultat avec ton "filtre" comme tu dis!!!

Recupère le pour calaculer le nombre de pages nécéssaire ...

Voila, bye...
Ovide
le 29/05/2005 à 20:45
Ovide
Merci beaucoup pour vos réponses, je vais de suite me rencarder là-dessus et mettre ça en fonction

;-)
Bzh
le 30/05/2005 à 12:04
Bzh
Le mysql_num_rows est vraiment a éviter.

Il vaux mieu faire ta requette avec un LIMIT or mysql_num_rows ne te servira à rien dans ce cas là.

<?php

//on recupère le nombre total de messages grace à une requette TRES légère
$requette = 'SELECT count(*) FROM ta_table WHERE ce_que_tu_veux';


//Puis on fait la vrai requette spécialement pour la deuxième page en comptant 15 messages par pages
$requette = 'SELECT id FROM ta_table WHERE ce_que_tu_veux LIMIT 15,30';


//Le LIMIT est TRES important pour allèger tes requettes. Là tu afficheras seulement les messages pour ta deuxième page. Et le résultat de ta première requette permet juste de connaitre le nombre de pages totales.

?>


Voilà, c' est pas bien compliqué. Je te laisse le reste à coder. Récupérer le numéro de page ($_GET['page']) afin de modifier le LIMIT et afficher les messages voulut !!!

Ciao...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours