Bonsoir,

Je suis confronté au problème suivant.

J'ai une page de news et je veux afficher ces news par lot de 5 ou 6 news par page. Mais je ne sais pas comment faire.

En base de données j'ai mes news, chacune identifié par un un id (clé primaire). Pour récupérer ces news, les 5 dernières, par exemple, je fait une requête SQL comme par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT * FROM news ORDER BY id_post DESC LIMIT 5
Comme ca j'ai les 5 dernières news. Mais si je veux afficher un lin qui pointent vers les autres news. Des news moins fraiches. Comment faire ? J'ai pensé a faire un script qui prends en paramètre les choses suivantes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
monScript.php?id_start=10&id_end=15
Comme ca je peux faire la requête SQL suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT * FROM news WHERE id_news>10 AND id_news<15 ORDER BY id_news
Mais l'inconvénient, est que si on a, entre temps, supprimé des news dans ta table des news, la requêtes SQL peut renvoyer un nombre inférieur a 5 news. C'est dommage.

Pour pallier a cela j'ai pensé passer les paramètres suivant au script:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
monScript.php?id_start=10&number_of_news=5 ORDER BY id_news
On fait donc la requêtes SQL suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SELECT * FROM news WHERE id_news>10 LIMIT 5 ORDER BY id_news
Ca doit marcher. Est-ce que ca marche ?

Ma question est: Est-ce que c'est-ce que c'est la bonne façon de faire ? Il y a t-il mieux ?

Merci.