Limiter le nb de lignes d'un listing.

Résolu/Fermé
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 - 5 nov. 2012 à 07:47
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 - 7 nov. 2012 à 11:11
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

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
5 nov. 2012 à 08:40
Logiquement, le limit ne pose pas de problème :
ORDER BY of_da.COMMENTAIRES DESC,
gammes_of.DATE_FIN_OPER ASC
Limit 0,30";
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 nov. 2012 à 09:20
Bah logiquement oui, mais dans la pratique ça me retourne une erreur.
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
5 nov. 2012 à 09:37
Erreur qui est ? ...
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
Modifié par myn0thor le 5/11/2012 à 11:30
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");}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
5 nov. 2012 à 11:36
$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);


?
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 nov. 2012 à 12:25
Ben tout fonctionne parfaitement sans le Limit...
0
Utilisateur anonyme
5 nov. 2012 à 14:22
Bonjour

Il me semble bien que LIMIT ne fait pas partie du SQL standard. Es-tu sûr que ton SGBD le supporte ?
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 nov. 2012 à 15:12
Je n'en ai pas la moindre idée, comment le savoir?
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
5 nov. 2012 à 15:28
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.
0
Utilisateur anonyme
5 nov. 2012 à 15:34
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 ?
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
5 nov. 2012 à 15:35
0
myn0thor Messages postés 67 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 4 août 2016 1
7 nov. 2012 à 11:11
ç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.
0
Utilisateur anonyme
5 nov. 2012 à 15:19
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.
-1