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

 MySQL Discussion :

Requete SQL, au moins un des critères doit être vérifié


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 77
    Points : 50
    Points
    50
    Par défaut Requete SQL, au moins un des critères doit être vérifié
    Bonjour,

    J'ai un soucis pour créer une requête où au moins un des critères doit être vérifié.
    Je m'explique, voici ma requête :
    SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
    FROM etudiant
    WHERE etudiant.promotion LIKE '%colpromotion%' AND etudiant.prenom LIKE '%colprenom%' AND etudiant.nom LIKE '%colnom%'
    ORDER BY etudiant.nom


    Dans mon formulaire lorsque je rentre un nom présent (ou pas) dans ma base de données et un prénom présent également (ou pas) dans la base de données j'aimerais trouver tous les étudiants possédant ce nom, ce prénom ou les deux.
    Le problème c'est qu'avec "AND" tous les critèrs doivent être vérifié. J'ai essayé de remplacer les "AND" par des "OR" mais dans ce cas au moins un des critères doit être vérifé et ainsi si je laisse un champ vide dans le formulaire j'obtiens tous les étudiants dans les résultats.
    Comment remédier à ce problème ? ...j'ai pensé instaurer des conditions lorsque les champs du formulaire sont vide, mais ça me paraît difficile.

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    apparement si je comprend bien, tu veux faire une recherche multi critères?? c'est ca??

    Pour faire ca, je crois que tu dois faire un test sur les champs de ton formulaires. s'ils sont vides tu les remplaces par une étoile...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    bonjour,
    avec quoi tu programmes?
    avec des if pour voir si les champs sont vides avant de les inclure dans la requete, ca devrait faire l'affaire

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Et en utilisant des paranthèses ça ne fonctionne pas :
    Du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
    FROM etudiant
    WHERE etudiant.promotion LIKE '%colpromotion%' 
    (AND etudiant.prenom LIKE '%colprenom%' 
    AND etudiant.nom LIKE '%colnom%')
    (OR etudiant.prenom LIKE '%colprenom%')
    (OR etudiant.nom LIKE '%colnom%')
    ORDER BY etudiant.nom;

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    Je crois que c'est plus simple de remplacer les champs vides par des étoiles...

    if(!$champ1) $champ1="*";
    if(!$champ2) $champ2="*";

    Mais bon à toi de voir

  6. #6
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 77
    Points : 50
    Points
    50
    Par défaut
    je programme sur Dreamweaver, je suis encore débutant et j'ai pensé tout faire avec la page "Création" mais apparemment je vais devoir me lancer dans le code...

    Oui toddy_101, il s'agit bien d'une recherche multi critères, je vais essayer d'intègrer des conditions comme vous me le proposez...mais j'ai peur de ne pas trop bien m'y prendre (pour preuve je ne sais même pas à quoi correspondent les étoiles). Connaissez vous un site contenant des exemples de recherches multi-critères pour que j'apprenne rapidement ?

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 130
    Points : 58
    Points
    58
    Par défaut
    désolé zeugzeug, j'ai du confendre avec access

    bon voila, au lieu des etoiles tu mets des "%%"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(!$colpromotion)  $colpromotion="%%";
    if(!$colprenom)  $colprenom="%%";
    if(!$colnom)  $colnom="%%";
     
    SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
    FROM etudiant
    WHERE etudiant.promotion LIKE '$colpromotion' AND etudiant.prenom LIKE '$colprenom' AND etudiant.nom LIKE ' $colnom'
    Voila, pour moi j'ai testé et ca a marché...

    si la variable est vide il la remplace avec %% comme ca tu selectionnes tous les elements n'importe que soit cette variable

    c'est comme ca que ca marche la recherche multicritères

    BON COURAGE!!

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

Discussions similaires

  1. [Toutes versions] Querydefs("requete").SQL coupé au niveau des retours à la ligne
    Par asmduty dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/10/2012, 11h10
  2. requete sql permettant de faire des tris
    Par cdo22 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/01/2009, 17h42
  3. Requete SQL sous Access : gestion des doublons
    Par mcroz dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 27/02/2007, 17h37
  4. requete sql avec between sur des champs de type Date
    Par ersoufiane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2006, 20h43
  5. Requete SQL probleme pour soustraire des résultats
    Par eljeje dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/04/2006, 11h34

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