Limiter le nb de lignes d'un listing.
Résolu
myn0thor
Messages postés
73
Statut
Membre
-
myn0thor Messages postés 73 Statut Membre -
myn0thor Messages postés 73 Statut Membre -
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.
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
-
Logiquement, le limit ne pose pas de problème :
ORDER BY of_da.COMMENTAIRES DESC,
gammes_of.DATE_FIN_OPER ASC
Limit 0,30"; -
Bah logiquement oui, mais dans la pratique ça me retourne une erreur.
-
-
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");}
?> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$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);
? -
-
Bonjour
Il me semble bien que LIMIT ne fait pas partie du SQL standard. Es-tu sûr que ton SGBD le supporte ? -
-
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 ? -
Pourrais-tu essayer ça ?
https://forums.commentcamarche.net/forum/affich-26403762-limiter-le-nb-de-lignes-d-un-listing#5 -
ç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.