Requête, problème avec LIMIT, ou pas ?

Eléphant du PHP | 209 Messages

13 mai 2008, 15:28

Salut,

J'essaye de faire une requête qui me donnerai, par exemple sur la sélection des messages d'un forum, la valeur maximal du champ id sur cette sélection, sachant que cette requête se termine par : LIMIT $debut, $n.
En gros, j'avais pensé faire ça (car je suis très con) : $req = mysql_query("SELECT MAX(id) FROM table WHERE ... LIMIT $debut, $n");
Mais bien sûr le problème c'est que le LIMIT s'applique au MAX(id) (donc dès que $debut>1 pu de résultat), j'ai donc essayé plein de trucs horribles avec des GROUP BY... mais je n'ai jamais obtenu le bon résultat.
Est-ce quelqu'un aurait une idée ou pourrait me mettre sur la voie ?
Merci.

Pourquoi le forum me dit ça :
Vous n'avez pas indiqué le schéma de vos tables sous la forme d'une instruction CREATE TABLE

Exporter sous phpMyAdmin
Manuel MySQL (mysql.com)

Eléphant du PHP | 422 Messages

13 mai 2008, 15:44

L'instruction Limit permet de dire "donne moi x enregistrements à partir du yième".
Quand tu fais une recherche du maximum, il est par définition unique : Il y a toujours qu'une seule réponse.
Donc

Code : Tout sélectionner

SELECT MAX(id) FROM table WHERE ...
Maintenant, si ce que tu veux faire, c'est sur une liste limitée, avoir le max de id, il faut que tu fasses ça

Code : Tout sélectionner

SELECT id FROM table WHERE ... ORDER BY id desc LIMIT x,y
Il ne faut surtout pas cherche le max, car il est unique. Il faut afficher tous les codes et les trier par ordre décroissant. Et ton id maximum, ce sera celui du premier enregistrement (ou plutôt du zero-ième)

Eléphant du PHP | 209 Messages

14 mai 2008, 14:45

Je pensais que c'était possible de le faire autrement...
Tant pis, j'utiliserai cette méthode.

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2008, 18:01

Modération :
SpintroniK, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

Eléphant du PHP | 209 Messages

15 mai 2008, 09:51

C'est fait, désolé, j'avais oublié :?