23-05-2014, 02:36 PM
Je rejoins Ter Rowan.
J'avais hésité à souligner le mot "morceau" dans ma réponse, j'aurai peut-être du ^^
Si tu veux pouvoir comprendre puis maintenir un code, regrouper les lignes identiques (factoriser) sera d'un grand secours, et permettra de bien délimiter ce que chaque morceau de code fait.
• Au survol, je dirai que le problème vient du fait que tu enregistre la requête MySQL dans la session. Bon, déjà, la requête est une chaine de texte (string), donc la stocker au lieu de la regénérer n'apporte pas grand chose si ce n'est de la lourdeur; mais surtout, si tu stockes la requête (avec son "LIMIT $N,$P") alors la même requête sera exécutée sur chaque page (puisque tu exécutes la requête stockée apparemment).
Si tu tiens à stocker la requête, stocke uniquement la requête sans la clause LIMIT, et ajoute cette clause avant d'exécuter la requête (mysqli->query($req.' LIMIT '.$N.','.$P).
Bon, c'est pas mon style habituel (stocker des bouts de requêtes et ajouter la clause "LIMIT" à la volée), mais cela collera au style "scriptural" donné...
Une requête préparée avec une clause LIMIT ?,? permettrait une bien meilleure relecture du code (qu'on utilise PDO ou MySQLi, perso, je préfère MySQLi).
J'avais hésité à souligner le mot "morceau" dans ma réponse, j'aurai peut-être du ^^
Si tu veux pouvoir comprendre puis maintenir un code, regrouper les lignes identiques (factoriser) sera d'un grand secours, et permettra de bien délimiter ce que chaque morceau de code fait.
• Au survol, je dirai que le problème vient du fait que tu enregistre la requête MySQL dans la session. Bon, déjà, la requête est une chaine de texte (string), donc la stocker au lieu de la regénérer n'apporte pas grand chose si ce n'est de la lourdeur; mais surtout, si tu stockes la requête (avec son "LIMIT $N,$P") alors la même requête sera exécutée sur chaque page (puisque tu exécutes la requête stockée apparemment).
Si tu tiens à stocker la requête, stocke uniquement la requête sans la clause LIMIT, et ajoute cette clause avant d'exécuter la requête (mysqli->query($req.' LIMIT '.$N.','.$P).
Bon, c'est pas mon style habituel (stocker des bouts de requêtes et ajouter la clause "LIMIT" à la volée), mais cela collera au style "scriptural" donné...
Une requête préparée avec une clause LIMIT ?,? permettrait une bien meilleure relecture du code (qu'on utilise PDO ou MySQLi, perso, je préfère MySQLi).