Limiter le nb de lignes d'un listing.

Résolu/Fermé
Signaler
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
-
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
-
Bonjour,

Je souhaiterais limiter l'affichage de mon listing à 30 lignes.
J'ai essayé avec un LIMIT dans la partie ORDER BY de ma reuqète mais ça m'indique SQL error.

Voici ma requête de base:

$sql="SELECT gammes_of.DATE_FIN_OPER AS 'Fin Oper',
gammes_of.OFDA AS 'OF/DA',
centres.DESIGNATION AS 'Operation',
gammes_of.TEMPS_ALLOUE AS 'Tps',
gammes_of.TEMPS_REEL AS 'Tps réel',
of_da.PRODUIT AS 'Produit',
LOWER(of_da.DESIGNATION) AS 'Désignation',
of_da.QUANTITE_DEMANDEE AS 'Qté',
of_da.BLOQUE,
of_da.CUMUL_ENTREES AS 'Cumul',
clients.CODE_CLIENT AS 'Client',
of_da.AFFAIRE AS 'Commande',
of_da.COMMENTAIRES AS 'Commentaires'
FROM gpao.centres centres,
gpao.clients clients,
gpao.gammes_of gammes_of,
gpao.of_da of_da
WHERE of_da.NUMERO_OFDA = gammes_of.OFDA AND
centres.ATELIER = gammes_of.ATELIER AND
centres.CENTRE = gammes_of.CENTRE AND
of_da.CLIENT = clients.CODE_CLIENT AND
((of_da.NUMERO_OFDA=gammes_of.ofda) AND
(centres.ATELIER=gammes_of.atelier) AND
(centres.CENTRE=gammes_of.centre) AND
(gammes_of.CLOTURE<>1)AND
(of_da.BLOQUE='0') AND
(VW_FGET_STATUT_OP_PRECEDENTE(gammes_of.ofda,gammes_of.sequence)=1) AND
(gammes_of.ATELIER='PL'))
ORDER BY of_da.COMMENTAIRES DESC,
gammes_of.DATE_FIN_OPER ASC";

Merci d'avance pour votre aide.


13 réponses

Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
126
Logiquement, le limit ne pose pas de problème :
ORDER BY of_da.COMMENTAIRES DESC,
gammes_of.DATE_FIN_OPER ASC
Limit 0,30";
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
Bah logiquement oui, mais dans la pratique ça me retourne une erreur.
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
96
Erreur qui est ? ...
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
Error in SQL

Voici l'ensemble de ma requête:

<?php
//connexion à la base de donnnées
$conn=odbc_connect('excalibur','gpao','bob');

//test de connexion
if ($conn==false)
{die("échec de la connexion");}

$sql="SELECT gammes_of.DATE_FIN_OPER AS 'Fin Oper',
gammes_of.OFDA AS 'OF/DA',
centres.DESIGNATION AS 'Operation',
gammes_of.TEMPS_ALLOUE AS 'Tps',
gammes_of.TEMPS_REEL AS 'Tps réel',
of_da.PRODUIT AS 'Produit',
LOWER(of_da.DESIGNATION) AS 'Désignation',
of_da.QUANTITE_DEMANDEE AS 'Qté',
of_da.BLOQUE,
of_da.CUMUL_ENTREES AS 'Cumul',
clients.CODE_CLIENT AS 'Client',
of_da.AFFAIRE AS 'Commande',
of_da.COMMENTAIRES AS 'Commentaires'
FROM gpao.centres centres,
gpao.clients clients,
gpao.gammes_of gammes_of,
gpao.of_da of_da
WHERE of_da.NUMERO_OFDA = gammes_of.OFDA AND
centres.ATELIER = gammes_of.ATELIER AND
centres.CENTRE = gammes_of.CENTRE AND
of_da.CLIENT = clients.CODE_CLIENT AND
((of_da.NUMERO_OFDA=gammes_of.ofda) AND
(centres.ATELIER=gammes_of.atelier) AND
(centres.CENTRE=gammes_of.centre) AND
(gammes_of.CLOTURE<>1)AND
(of_da.BLOQUE='0') AND
(VW_FGET_STATUT_OP_PRECEDENTE(gammes_of.ofda,gammes_of.sequence)=1) AND
(gammes_of.ATELIER='PL'))
ORDER BY of_da.COMMENTAIRES DESC,
gammes_of.DATE_FIN_OPER ASC";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
?>
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
96
$conn=odbc_connect('excalibur','gpao','bob') or die;



Tu es sur que y'a pas de problème du coté de ton odbc_exec ?
la connexion est bien faite ?

ça ne serait pas plutot:

$query = odbc_prepare($conn, $sql);
$rs= odbc_execute($query);


?
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
Ben tout fonctionne parfaitement sans le Limit...

Bonjour

Il me semble bien que LIMIT ne fait pas partie du SQL standard. Es-tu sûr que ton SGBD le supporte ?
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
Je n'en ai pas la moindre idée, comment le savoir?
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
Et des commentaires utiles tu en as? car sinon bah tu peux te taire aussi c'est une option pas mal quand on a rien à dire.

Tu le prends mal si tu veux, je t'ai simplement dit comment je faisais d'habitude car ça me semble être une évidence. Je ne me crois pas assez calé pour programmer sans manuel, mais toi tu fais comme tu veux.
Quel SGBD utilises-tu ?
Messages postés
509
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
17 avril 2013
96
Messages postés
67
Date d'inscription
vendredi 9 juillet 2010
Statut
Membre
Dernière intervention
4 août 2016
1
ça y est j'ai réglé mon problème à l'aide d'une boucle...

Pour la connection elle ne pose aucun problème.
Et pour le SGBD c'est en SQLAnywhere qui à priori n'accepte pas Le LIMIT (du moins su la version de notre logiciel...


Merci à tous pour votre aide je marque en résolu.

En regardant dans le manuel, quelle question.
Personnellement, c'est ce que je fais avant de poser une question ici. C'est peut-être pour ça que je n'ai jamais posé de question, d'ailleurs.