Bonjour,

Voila je rencontre un petit problème avec mon code.
Alors deja je m'excuse si j'aurai plutot du le mettre dans la section MySQL

Donc je cherche a prendre des valeurs 6 par 6 dans ma base de données.

Alors pour prendre les 6 premiers enfin plutot dernier la, je fais ma requete:

$reponse2 = $bdd->query("SELECT * FROM sousmenu where idMenu='".$idPrP."' and pays='".$pays."' ORDER BY idSSmenu DESC LIMIT 6");
while ($donnees2 = $reponse2->fetch()){ici s'affiche mes resultats}

Et maintenant ma question, c'est comment je peux faire pour prendre les 6 precedents... et ainsi de suite!

J'ai pensé sinon prendre les 12 suivants apres... et enlever les 6premiers, et apres par 18 et enlever les 12premiers.... mais ca me fait penser plus a du bricolage...
Peut etre pourriez vous eclairer ma lanterne!

cordialement

2 réponses


Azorgh
Réponse acceptée

Hello,

Il s'agit au final, d'un système de pagination.
Décompose le :

Page 1 : On récupère les 6 premiers
Page 2 : On récupère 6 éléments après les 6 premiers
Page 3 : On récupère 6 éléments après les 12 premiers.

Donc en gros, tu prends toujours 6 éléments, mais jamais du même point. Le point de départ est 6 (page actuelle - 1).
Page 1 : 6
1 - 1 = 0
Page 2 : 6 (2 - 1) = 6
Page 3 : 6
(3 - 1)) = 12

Donc ta requête va être comme ça :

$take = 6;
$page = $numero_de_page;
$interval = $take * ($page - 1);
$reponse2 = $bdd->query("SELECT * FROM sousmenu where idMenu='".$idPrP."' and pays='".$pays."' ORDER BY idSSmenu DESC LIMIT ". $interval . ", " . $take");

PS : J'ai fait ça de tête, il y a peut être moyen d'améliorer un peu le truc, je te laisse chercher les systèmes de pagination en PHP / MySQL.

Merci pour cette réponse rapide!
je vais essayer ca!