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

Langage SQL Discussion :

Mauvaise utilisation de COUNT ?


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
    Inscrit en
    Septembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut Mauvaise utilisation de COUNT ?
    Bonjour à toutes et tous.
    J'expose mon problème...

    Table 1 structure : phId - phNom... Soit :
    1 - toto.jpg
    2 - titi.jpg
    3 - tata.jpg
    4 - tutu.jpg

    Table 2 structure : phMcId - PhMcNom... Soit :
    10 - lapin
    11 - chien
    12 - chat
    13 - cheval

    Table 3 structure : phMcId - PhId... Soit :
    11 - 1
    12 - 1
    10 - 3
    10 - 4
    10 - 2
    11 - 2

    Comme vous pouvez le constater, il s'agit d'une base mySql destinée à gérer une indexation de photo. Donc, la table 1 regroupe la liste des photos, la table 2 regroupe la liste des mots clés et la table 3 est une table de correspondance entre les mots clés et les photos.

    J'ai fait un formulaire à une entrée en html de type "input" dans lequel l'internaute peut saisir 1 ou plusieurs mots clés. J'obtiens alors une chaine du type "chat chien" par exemple.

    Après avoir "éclaté" la chaine à l'aide de l'instruction PHP EXPLODE, je recherche dans ma base les photos qui possèdent à la fois le mot clé "chat" et le mot clé "chien" (quand on regarde la description de mes tables, ci-dessus, on se rend compte que seule la photo "toto.jpg" répond à cette requête).

    Voici la requête que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT phMcId, phId, COUNT(*) FROM table 3
    WHERE (phMcId='11' OR phMcId='12') GROUP BY phId
    Or, le résultat de cette requête m'affiche toutes les photos qui possèdent le mot clé "chat" OU "chien" OU ("chien" ET "chat")...

    J'imagine que ma requête est mal construite mais je ne vois pas comment la faire autrement.

    Pouvez-vous m'aider svp ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 400
    Points
    28 400
    Par défaut
    Il ne manque pas grand chose pour arriver au résultat...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  phId
        ,   COUNT(*) 
    FROM    TABLE 3
    WHERE   phMcId IN ('11', '12')
    GROUP BY phId
    HAVING  COUNT(DISTINCT phMcId) = 2
    D'ailleurs, en affichant le COUNT, tu avais déjà les pistes pour arriver jusque là

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
    Inscrit en
    Septembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2007
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup, cela fonctionne parfaitement. Je n'étais certes pas très loin, mais sans ton aide, j'aurais eu beaucoup de mal à arriver à un résultat satisfaisant.

    merci encore

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

Discussions similaires

  1. Utilisation de COUNT
    Par Ouark dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/11/2006, 09h20
  2. Utilisation de Count...grand débutant
    Par petitours dans le forum Access
    Réponses: 3
    Dernier message: 08/02/2006, 14h53
  3. utilisation de count(*) en condition
    Par clemsouz dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/09/2005, 14h32
  4. utilisation de count(*) en condition
    Par clemsouz dans le forum Langage SQL
    Réponses: 12
    Dernier message: 26/09/2005, 14h29
  5. [xsl]utilisation du count
    Par Grimaud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/07/2005, 10h09

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