Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2007, 18h19   #1
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 29
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 29
Points : 2
Points : 2
Par défaut [SQL] Problème requête avec Limit 1

Bonjour,

Code :
$sql = "SELECT * FROM FACTURES where (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%')order by IDXFacture DESC AND LIMIT 1"
Le LIMIT 1 empeche ma requette de fonctionner :
Voici la réponse de easyPHP :
Citation:
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause ORDER BY., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\bati\web\ajout_client2.php on line 13
Je ne comprends pas ...
L'interet est de choisir le dernier enregistrement ...

Ouverte à toute autre propositions....

Merci
miss_monika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 06h54   #2
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
bonjour,

l'erreur ne viendrait elle pas du fait qu'il manque un espace entre ton like et ton order? Sinon en mysql le limit serait 1,1
Code mysql :
$sql = "SELECT * FROM FACTURES where (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%') order by IDXFacture DESC AND LIMIT 1,1"
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 07h22   #3
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Tu attaques access avec php?
Je crois que pour limiter les enregistrements dans access il ne faut pas utiliser LIMIT mais de mettre TOP numerique apres le select:

Code :
1
2
3
4
5
 
 
select TOP 20 champ
from TABLE
...
  Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 09h05   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Salut

Pour les limites dans access je ne sais pas. En revanche, en SQL, il ne faut pas de AND entre le order et le limit
Code sql :
1
2
3
4
SELECT * FROM FACTURES 
  WHERE (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%')
  ORDER BY IDXFacture DESC 
  LIMIT 1
Bon courage !
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 09h13   #5
Membre éclairé
 
Avatar de TucSale
 
Inscription : novembre 2005
Messages : 265
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2005
Messages : 265
Points : 301
Points : 301
Envoyer un message via MSN à TucSale
Citation:
Envoyé par yiannis
Sinon en mysql le limit serait 1,1
Petite précision : Ici tu selectionne le 2nd enregistrement,
Pour selectionner le premier => LIMIT 0,1

De plus
Citation:
Si un seul argument est donné, il indique le nombre maximum d'enregistrements à retourner :

mysql> SELECT * FROM table LIMIT 5; # Retourne les 5 premiers enregistrements

Autrement dit, LIMIT n est équivalent à LIMIT 0,n.
TucSale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 10h16   #6
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 29
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 29
Points : 2
Points : 2
Voici la solution... Je pense que comme dit ci-dessus, ACCESS ne connait pas, n'accepte pas les LIMIT.

MERCI POUR LE TOP

Code :
$sql = "SELECT TOP 1 * FROM FACTURES where (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%') order by IDXFacture DESC" ;
Merci tout le monde

a+
miss_monika est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h21.


 
 
 
 
Partenaires

Hébergement Web