Aller au contenu

Fonction LIMIT en SQL fonctionne à moitié

Featured Replies

Posté(e)

Bonjour à tous,

je voudrais faire un affichage sur une page php de résultats page par page, un peu comme sur le forum, ca montre les 10 premiers résultats, puis quand on clique sur "suivant" on a les 10 résultats qui suivent, etc

Il existe pour cela une fonction SQL "LIMIT".

Quand je fais la requete suivante:

@$query="SELECT * FROM voiture WHERE vendu=0 ORDER BY marque,modele,prix_de_vente LIMIT 4;";

Cela fonctionne, ca limite les résultats à 4 affichages.

Par contre, si je veux faire la requête suivante:

@$query="SELECT * FROM voiture WHERE vendu=0 ORDER BY marque,modele,prix_de_vente LIMIT 3,4;";

Ca ne marche pas, alors que ca devrait m'afficher 4 résultats en partant du 3 ieme ...

Pourquoi cela ne marche-il pas ?

PS: ma base de données est postgres

Posté(e)

Que retourne ta requête foireuse ?

Perso, je tenterai une requête simple sans ORDER BY pour voir...

Et ensuite, ta requête a-t-elle 7 résultats à te sortir ??? (CAD 4 en commençant du 3ème...)

:merci:

Posté(e)
  • Auteur

Ma requete foireuse ne me retourne rien du tout justement ...

Sinon si je fais un copié/collé dans postgres, l'erreur est la suivante:

ERROR: LIMIT #,# syntax is not supported

HINT: Use separate LIMIT and OFFSET clauses.

Posté(e)

Sinon si je fais un copié/collé dans postgres, l'erreur est la suivante:

ERROR: LIMIT #,# syntax is not supported

HINT: Use separate LIMIT and OFFSET clauses.

Euh, flipant ce que j'ai mis en rouge... Et sans le LIMIT, ca marche ? :merci:

Posté(e)

Déjà essaye en virant le ';', puis le @ n'est pas obligatoire (loin s'en faut)

& finalement, LIMIT <limit> OFFSET <offset> est à prévaloir sur l'autre syntaxe. Comme ça ton script pourra même tourner avec postgreSQL :)

Posté(e)
  • Auteur

C'est la première fois que vois un tel message d'erreur : depuis quand Mysql refuse les LIMIT x,y ??

J'utilise une base de données postgres et pas mysql ...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.