tester la valeur d'un champs dans une base

Eléphanteau du PHP | 13 Messages

06 janv. 2009, 16:42

bonjour,
j'ai une base de donneé ou je mets une liste de professeur, chaque professeur pouvant avoir plusieur instruments à disposition. Pour cela, lorsque j'édite mon professeur dans ma console en php, j'ai mis en place une zone ou la personne doit cocher tout les instruments qu'elle a. Ensuite il viennent tous indiquer dans le meme champs séparé par une virgule. Dans dream, cela s'appelle, comma-separated-checkbox.

Mon dilemme, est que lorsque je fait un nouveau recordset et que je lui indique le filtre instruments, ex :

Code : Tout sélectionner

SELECT * FROM professeurs WHERE Branches = 'Orgue'

je voudrais qu'il m'affiche tous les profs qui ont comme instruments Orgue. Mais le souci est qu'il affiche uniquement le prof qui ont 1 seul instrument est qui est l'Orgue. Celui qui à deux instruments(donc dans ma base, il y aura noté :Orgue,Piano), il ne le prend pas celui là.

Comment faire pour filtrer tout les profs et meme ceux qui ont plusieur instruments.

Merci de votre aide..

Eléphant du PHP | 86 Messages

06 janv. 2009, 16:54

Bonjour,

tu fait comme ça :

Code : Tout sélectionner

SELECT * FROM professeurs WHERE Branches LIKE '%Orgue%'
Bonne journée.

Eléphanteau du PHP | 13 Messages

06 janv. 2009, 17:20

merci, c'est exactement ce qu'il me fallait, j'avais essayé mais sans les %

Mammouth du PHP | 1353 Messages

06 janv. 2009, 17:20

On notera cependant que cela n'est pas très optimisé comme méthode, l'idéal étant d'avoir une table professeur avec un id et des infos par profs, une table instrument avec un id et des infos par instruments, et une table de liaison avec les relations

Exemple :

Professeur
Id = 1
Nom = XXX
Prénom = YYY

Instrument
Id = 1
Nom = orgue
Catégorie = XXX

Liaison
id = 1
id_professeur = 1
id_instrument = 1

Il sera plus facile dans ce cas de faire des recherches et des recoupe d'informations...

Pour ta recherche par exemple tu cherches dans la table liaison tous les id des profs ou id instrument = 1 et tu as ce que tu veux... Après pour des recherches sur plusieurs instruments par exemple ca sera beaucoup plus simple ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.