IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Problème requête avec Limit 1


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 29
    Par défaut [SQL] Problème requête avec Limit 1
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 :
    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

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM FACTURES where (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%') order by IDXFacture DESC AND LIMIT 1,1"

  3. #3
    jnore
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    select TOP 20 champ
    from TABLE
    ...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre chevronné Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Par défaut
    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
    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.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 29
    Par défaut
    Voici la solution... Je pense que comme dit ci-dessus, ACCESS ne connait pas, n'accepte pas les LIMIT.

    MERCI POUR LE TOP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT TOP 1 * FROM FACTURES where (idxCLIENT = ".$idxCLIENT.") AND (NUMFACTURE LIKE 'D%') order by IDXFacture DESC" ;
    Merci tout le monde

    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème requète avec les dates sous sql server
    Par fayabones dans le forum Développement
    Réponses: 2
    Dernier message: 04/06/2009, 22h27
  2. [SQL] Problème requête sur 2 tables
    Par temperature dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/04/2006, 12h05
  3. Problème requête avec group by et distinct
    Par tomca dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/07/2005, 16h10
  4. [SQL Server]Requête avec DateDiff
    Par sangokus dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 10/05/2004, 14h44
  5. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo