Afficher le résultat d'une requête sur plusieurs pages

Eléphant du PHP | 57 Messages

17 mars 2010, 19:26

Bonjour,

je suis en train de programmer un mini-chat et j'aurais aimé pouvoir afficher 10 résultats (messages) par page. J'ai une petite idée de comment y parvenir mais pour ca je dois pouvoir placer une variable dans la LIMIT de la requête SQL. Cependant je n'y arrive pas...

Voici ma question :

Comment se fait-il que ce code fonctionne pour mon script :
$req = $bdd->query('SELECT * FROM mini_chat ORDER BY id DESC LIMIT 0, 10');
Mais que celui-ci ne m'affiche rien du tout :
$limit = 0;
$req = $bdd->prepare('SELECT * FROM mini_chat ORDER BY id DESC LIMIT ?, 10');
$req->execute(array($limit));
Or ca revient au même... O.o

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

17 mars 2010, 21:45

Lien de la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 57 Messages

17 mars 2010, 21:53

La FAQ conseille de mettre la variable directement dans la requete sql...

Code : Tout sélectionner

$sql_n = "SELECT nouv_titre, nouv_texte, nouv_date FROM nouvelles LIMIT ". $debut .", ". $nb_nouv_par_page .";";
Je connais cette méthode, elle fonctionne en effet dans mon cas, mais c'est dangereux, n'importe qui pourra faire une injonction SQL sur mon site...

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

17 mars 2010, 22:01

"Injection SQL"
C'est le seul moyen... en échappant correctement les valeurs reçues par GET pas compliqué :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 57 Messages

17 mars 2010, 22:05

Oki je vais procéder de la sorte dans ce cas, mais je comprends quand meme pas pourquoi le marqueur ? ne peut pas être utilisé pour le LIMIT
Anyway, merci :)

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

17 mars 2010, 23:08

le "?" pour limit connais pas moi :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute