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

Requêtes MySQL Discussion :

Requête OR - LIKE


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Requête OR - LIKE
    Bonjour,

    J'ai dévelloper en PHP un système de recherche multicritaires pour une table particulière.

    Pour le moment, j'ai que 3 enregistrements dans cette table

    Table "inventaire_pc"

    ID | HOSTNAME | OS | MARQUE | SITUATION | etc...
    1........titi............1.........1.............3
    2........kiki............2.........1.............2
    3........toto..........1..........2............2

    Lorsque je fais une requête sur une colonne (HOSNAME) pour pour afficher "titi" OU "toto" celui-ci m'affiche une multitude de réponce alors que je devrais avoir que deux résultats

    Voici la requête réalisé :

    SELECT *

    FROM inventaire_pc , marque , modele , os , situation , utilisateur

    WHERE inventaire_pc.pc_marque = marque.id_marque
    AND marque.modele_marque = modele.id_modele
    AND inventaire_pc.os = os.id_os
    AND inventaire_pc.situation = situation.id_situation
    AND inventaire_pc.utilisateur = utilisateur.id_utilisateur

    AND inventaire_pc.hostname LIKE '%titi%'
    OR inventaire_pc.hostname LIKE '%toto%'
    A savoir, lorsque je supprime les tables "marque , modele , os , situation , utilisateur" de la requête, j'ai plus ce problème.

    En toute logique, malgrès mes liens entre mes différentes tables, je ne devrais pas avoir ce problème...

    auriez vous une idée de résolution ?

    Merci d'avance

    Arnaud

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Mettre des parenthèses autour de ta condition OR car c'est le AND qui se retrouve prioritaire il me semble (c'est comme une opération avec des multiplications et des sommes).
    Je pense pas que ça résolve le problème mais il y avait un souci de ce côté là déjà.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    si amara, c'est bien là le probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT *
     
    FROM inventaire_pc , marque , modele , os , situation , utilisateur
     
    WHERE inventaire_pc.pc_marque = marque.id_marque
    AND marque.modele_marque = modele.id_modele
    AND inventaire_pc.os = os.id_os
    AND inventaire_pc.situation = situation.id_situation
    AND inventaire_pc.utilisateur = utilisateur.id_utilisateur
     
    AND (inventaire_pc.hostname LIKE '%titi%'
    OR inventaire_pc.hostname LIKE '%toto%')

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT *
     
    FROM inventaire_pc , marque , modele , os , situation , utilisateur
     
    WHERE inventaire_pc.pc_marque = marque.id_marque
    AND marque.modele_marque = modele.id_modele
    AND inventaire_pc.os = os.id_os
    AND inventaire_pc.situation = situation.id_situation
    AND inventaire_pc.utilisateur = utilisateur.id_utilisateur
     
    AND inventaire_pc.hostname LIKE '%titi%'
    (OR) inventaire_pc.hostname LIKE '%toto%'
    Comme ca, ca me fait une erreur...

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    A oui c'est nikel ca fonctionne !

    J'avais pas vu ta réponse Azazel.fr

    Merci !!

  6. #6
    Membre habitué Avatar de Azazel.fr
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 170
    Points : 196
    Points
    196
    Par défaut
    houla !
    je crois qu'il faut revoir les bases de mysql...

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Je en connaissais pas les () dans les AND et OR...

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    On avait vu lol
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. Pb Requête avec Like
    Par Syrrus dans le forum VBA Access
    Réponses: 7
    Dernier message: 21/11/2007, 17h34
  2. [Débutant] Requête avec Like
    Par nellynew dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2006, 07h30
  3. Problème avec requête contenant like
    Par keisha dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/08/2006, 20h23
  4. Requête avec like et un champ de formulaire
    Par Sly2k dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/07/2006, 15h46
  5. Requête MYSQL LIKE particulière
    Par TheDarkLewis dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/12/2004, 15h50

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