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 ?