Je ne sais pas exactement comment cela s'appelle mais je vais essayer de décrire aussi bien que possible ce que je veux réaliser. Donc, tout d'abord, il y a une variable, appelée $id
, qui est actuellement $_GET['id']
. En supposant que l'utilisateur entre la page suivante en demandant: /page.php?id=6
. Maintenant, ce que je dois faire est de fournir les informations sur les 3 prochaines pages de la base de données. Voici la base de données: AlorsBoucler les résultats de MySQL
TABLE `pages`
id | page_name
______________________
1 | AAAAA
2 | BBBBB
3 | CCCCC
4 | DDDDD
5 | EEEEE
6 | FFFFF
7 | GGGGG
8 | HHHHH
9 | IIIII
, tout en demandant la page avec identifiant 6
, le script suivant renvoie les 3 pages suivantes (7,8,9):
$res = mysql_query("SELECT * FROM `pages` WHERE `id`>'".intval($id)."' ORDER BY `id` DESC LIMIT 3");
while($arr = mysql_fetch_assoc($res))
{
print("Page ID: ".$arr['id']."; Page Name: ".$arr['page_name']."\n");
}
Et est ici la sortie :
Page ID: 7; Page Name: GGGGG
Page ID: 8; Page Name: HHHHH
Page ID: 9; Page Name: IIIII
Et cela fonctionne bien jusqu'à ce que la $id
est supérieure à 6. Quand il est (/page.php?id={7/8/9}
), la sortie ne montre pas 3 pages plus, mais 2 pages, 1 pag e et respectivement pas de sortie lorsque $id
est 9
. Donc, ma question est: Y at-il un moyen de revenir en arrière et de commencer dès le début quand il n'y a pas assez de résultats (moins de 3) à afficher?
- Lorsque vous accédez à
/page.php?id=8
, la sortie devrait contenir des pages avec id9
,1
et2
. - Lors de l'accès
/page.php?id=9
, la sortie doit contenir des pages avec l'ID1
,2
,3
. - Lors de l'accès
/page.php?id=3
, la sortie doit contenir des pages avec l'ID4
,5
,6
et ainsi de suite.
Vous voulez dire autre que l'exécution de la requête une seconde fois sans condition WHERE et une LIMITE basée sur le nombre de résultats obtenus la première fois? – Oswald