J'ai un petit soucis, qui, je suis sûr doit être tout bête, mais je ne trouve pas la solution.
Imaginons, cette table :
TABLE image (id(11),couleurs(200))
Dans couleur j'enregistre les couleurs dominante de l'image comme ceci: "'Rouge','Bleu','Vert'"
Mon problème, viens quand j’essaie de faire une requête du genre, "trouver les images qui ont du bleu" ... ou "trouver les images qui ont du vert OU du rouge"
J’étais partis sur une base de :
$choix = "'Vert','Rouge'";
SELECT * FROM image WHERE couleurs IN (".$choix.");
Mais forcement, ça ne peu pas marcher vu que "couleurs" est une chaine de plusieurs couleurs.
Il faut que je revoit ma façon d'enregistrer les différentes couleurs dans "images" (avec un champs par couleur par exemple) ou bien y a t il une autre solution ?
Merci d'avance.
A voir également:
Faire un SELECT si l'un des choix est dans un champs
Mais avec juste like '%".$choix."%' , ça ne pouvais pas marcher car l'ordre des choix pouvait être différent de l'ordre d'enregistrement dans la BDD.
Par exemple, couleurs pouvait être "'Rouge','Bleu','Vert'" et choix: "'Bleu','Vert','Rouge'".
Mais tu m'a grandement aiguillée sur la solution, j'ai fait :
$choix = str_replace(',','%" OR couleurs LIKE "%',$choix);
SELECT * FROM image WHERE (couleurs LIKE ".$choix.");