Voici mon problème :
J'ai dans une base MySQL une table nommée "photo" qui comprend des champs,
titre, description, etc...
Il y a également 3 champs qui classent cette photo dans des thèmes, ces
champs se nomment rubriqueID1, rubriqueID2, rubriqueID3.
Dans ces champs j'entre des numéros. 1 pour rubrique paysage, 2 pour
rubrique macrophoto, etc...
Une photo peut donc se classer dans 3 rubriques maxi.
J'ai une autre table nommée "rubrique" qui comprend un champ ID
autoincrémenté et un champ "theme" qui décrit les thèmes : paysage,
macrophoto, etc...
Je voudrais à l'aide d'un menu déroulant qui comprend la liste des thèmes
(Paysage, Macrophoto...) faire afficher les photos correspondantes par la
lecture des rubriquesID1, rubriqueID2, rubriqueID3.
J'y arrive par le code suivant (à l'aide de Dreamweaver), mais uniquement
avec rubriqueID1 de la table photo.
Voici ce que cela donne :
---------------------------------------------------
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur,
photos.prix, photos.photo
FROM rubrique, photos
WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1
--------------------------------------------------
coltheme est une variable qui se voit attribuer la valeur d'exécution
$HTTP_GET_VARS['VARtheme'].
VARtheme étant le nom du menu déroulant.
Dans ce cas de figure j'obtiens bien la liste des photos dont le thème
correspond à rubriqueID1.
Comment faire pour que le système analyse également les deux autres
rubriques ?
J'ai essayé ceci :
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur,
photos.prix, photos.photo
FROM rubrique, photos
WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 AND
rubrique.ID=photos.rubriqueID2 AND rubrique.ID=photos.rubriqueID3
Mais ça ne marche pas !
J'ai essayé avec OR, ça ne marche pas non plus. Il m'affiche n'importe quoi
!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
olivier
"Pierre" a écrit dans le message de news: 41bc8f38$0$3403$
Bonjour à tous,
Voici mon problème : J'ai dans une base MySQL une table nommée "photo" qui comprend des champs, titre, description, etc... Il y a également 3 champs qui classent cette photo dans des thèmes, ces champs se nomment rubriqueID1, rubriqueID2, rubriqueID3. Dans ces champs j'entre des numéros. 1 pour rubrique paysage, 2 pour rubrique macrophoto, etc... Une photo peut donc se classer dans 3 rubriques maxi.
J'ai une autre table nommée "rubrique" qui comprend un champ ID autoincrémenté et un champ "theme" qui décrit les thèmes : paysage, macrophoto, etc...
Je voudrais à l'aide d'un menu déroulant qui comprend la liste des thèmes (Paysage, Macrophoto...) faire afficher les photos correspondantes par la lecture des rubriquesID1, rubriqueID2, rubriqueID3. J'y arrive par le code suivant (à l'aide de Dreamweaver), mais uniquement avec rubriqueID1 de la table photo.
Voici ce que cela donne : --------------------------------------------------- SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur, photos.prix, photos.photo FROM rubrique, photos WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 -------------------------------------------------- coltheme est une variable qui se voit attribuer la valeur d'exécution $HTTP_GET_VARS['VARtheme']. VARtheme étant le nom du menu déroulant.
Dans ce cas de figure j'obtiens bien la liste des photos dont le thème correspond à rubriqueID1.
Comment faire pour que le système analyse également les deux autres rubriques ? J'ai essayé ceci :
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur, photos.prix, photos.photo FROM rubrique, photos WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 AND rubrique.ID=photos.rubriqueID2 AND rubrique.ID=photos.rubriqueID3
Mais ça ne marche pas ! J'ai essayé avec OR, ça ne marche pas non plus. Il m'affiche n'importe
quoi
!
Si quelqu'un peut m'aider !!!!
Merci d'avance ! Pierre
Bonjour Pierre,
Je pense que du devrais organiser ta base de données différemment pour règler ton problème.
TABLE PHOTO [tu sucre les 3 champs thèmes et tu rajoute une clé primaire] id -> clé primaire auto-incrémentée reference titre auteur prix photo
TABLE ASSOC (table de relation PHOTO <-> THEMES) [pour chaque association photo/themes, tu créé un enregistrement contenant les ID des deux tables] ID-> clé primaire auto-incrémentée IDphoto clé étrangère PHOTO IDreference clé étrangère THEME
Exemple de requête (ex. l'utilisateur à sélectionné dans le combo le théme dont l'ID est 1) : SELECT * FROM PHOTO LEFT JOIN ASSOC ON PHOTO.ID=ASSOC.IDPHOTO LEFT JOIN THEME ON ASSOC.IDTHEME=THEME.ID WHERE THEME.ID=1;
récupére tous les champs de tous les enregistrements de PHOTO relié (via ASSOC) au THEME avec ID=1
Hope this help
Olivier
"Pierre" <p.lecciaNOSPAM@laposte.net> a écrit dans le message de news:
41bc8f38$0$3403$8fcfb975@news.wanadoo.fr...
Bonjour à tous,
Voici mon problème :
J'ai dans une base MySQL une table nommée "photo" qui comprend des champs,
titre, description, etc...
Il y a également 3 champs qui classent cette photo dans des thèmes, ces
champs se nomment rubriqueID1, rubriqueID2, rubriqueID3.
Dans ces champs j'entre des numéros. 1 pour rubrique paysage, 2 pour
rubrique macrophoto, etc...
Une photo peut donc se classer dans 3 rubriques maxi.
J'ai une autre table nommée "rubrique" qui comprend un champ ID
autoincrémenté et un champ "theme" qui décrit les thèmes : paysage,
macrophoto, etc...
Je voudrais à l'aide d'un menu déroulant qui comprend la liste des thèmes
(Paysage, Macrophoto...) faire afficher les photos correspondantes par la
lecture des rubriquesID1, rubriqueID2, rubriqueID3.
J'y arrive par le code suivant (à l'aide de Dreamweaver), mais uniquement
avec rubriqueID1 de la table photo.
Voici ce que cela donne :
---------------------------------------------------
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur,
photos.prix, photos.photo
FROM rubrique, photos
WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1
--------------------------------------------------
coltheme est une variable qui se voit attribuer la valeur d'exécution
$HTTP_GET_VARS['VARtheme'].
VARtheme étant le nom du menu déroulant.
Dans ce cas de figure j'obtiens bien la liste des photos dont le thème
correspond à rubriqueID1.
Comment faire pour que le système analyse également les deux autres
rubriques ?
J'ai essayé ceci :
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur,
photos.prix, photos.photo
FROM rubrique, photos
WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 AND
rubrique.ID=photos.rubriqueID2 AND rubrique.ID=photos.rubriqueID3
Mais ça ne marche pas !
J'ai essayé avec OR, ça ne marche pas non plus. Il m'affiche n'importe
quoi
!
Si quelqu'un peut m'aider !!!!
Merci d'avance !
Pierre
Bonjour Pierre,
Je pense que du devrais organiser ta base de données différemment pour
règler ton problème.
TABLE PHOTO [tu sucre les 3 champs thèmes et tu rajoute une clé primaire]
id -> clé primaire auto-incrémentée
reference
titre
auteur
prix
photo
TABLE ASSOC (table de relation PHOTO <-> THEMES) [pour chaque association
photo/themes, tu créé un enregistrement contenant les ID des deux tables]
ID-> clé primaire auto-incrémentée
IDphoto clé étrangère PHOTO
IDreference clé étrangère THEME
Exemple de requête (ex. l'utilisateur à sélectionné dans le combo le théme
dont l'ID est 1) :
SELECT * FROM PHOTO
LEFT JOIN ASSOC ON PHOTO.ID=ASSOC.IDPHOTO
LEFT JOIN THEME ON ASSOC.IDTHEME=THEME.ID
WHERE THEME.ID=1;
récupére tous les champs de tous les enregistrements de PHOTO relié (via
ASSOC) au THEME avec ID=1
"Pierre" a écrit dans le message de news: 41bc8f38$0$3403$
Bonjour à tous,
Voici mon problème : J'ai dans une base MySQL une table nommée "photo" qui comprend des champs, titre, description, etc... Il y a également 3 champs qui classent cette photo dans des thèmes, ces champs se nomment rubriqueID1, rubriqueID2, rubriqueID3. Dans ces champs j'entre des numéros. 1 pour rubrique paysage, 2 pour rubrique macrophoto, etc... Une photo peut donc se classer dans 3 rubriques maxi.
J'ai une autre table nommée "rubrique" qui comprend un champ ID autoincrémenté et un champ "theme" qui décrit les thèmes : paysage, macrophoto, etc...
Je voudrais à l'aide d'un menu déroulant qui comprend la liste des thèmes (Paysage, Macrophoto...) faire afficher les photos correspondantes par la lecture des rubriquesID1, rubriqueID2, rubriqueID3. J'y arrive par le code suivant (à l'aide de Dreamweaver), mais uniquement avec rubriqueID1 de la table photo.
Voici ce que cela donne : --------------------------------------------------- SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur, photos.prix, photos.photo FROM rubrique, photos WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 -------------------------------------------------- coltheme est une variable qui se voit attribuer la valeur d'exécution $HTTP_GET_VARS['VARtheme']. VARtheme étant le nom du menu déroulant.
Dans ce cas de figure j'obtiens bien la liste des photos dont le thème correspond à rubriqueID1.
Comment faire pour que le système analyse également les deux autres rubriques ? J'ai essayé ceci :
SELECT rubrique.theme, photos.reference, photos.titre, photos.auteur, photos.prix, photos.photo FROM rubrique, photos WHERE rubrique.ID=coltheme AND rubrique.ID=photos.rubriqueID1 AND rubrique.ID=photos.rubriqueID2 AND rubrique.ID=photos.rubriqueID3
Mais ça ne marche pas ! J'ai essayé avec OR, ça ne marche pas non plus. Il m'affiche n'importe
quoi
!
Si quelqu'un peut m'aider !!!!
Merci d'avance ! Pierre
Bonjour Pierre,
Je pense que du devrais organiser ta base de données différemment pour règler ton problème.
TABLE PHOTO [tu sucre les 3 champs thèmes et tu rajoute une clé primaire] id -> clé primaire auto-incrémentée reference titre auteur prix photo
TABLE ASSOC (table de relation PHOTO <-> THEMES) [pour chaque association photo/themes, tu créé un enregistrement contenant les ID des deux tables] ID-> clé primaire auto-incrémentée IDphoto clé étrangère PHOTO IDreference clé étrangère THEME
Exemple de requête (ex. l'utilisateur à sélectionné dans le combo le théme dont l'ID est 1) : SELECT * FROM PHOTO LEFT JOIN ASSOC ON PHOTO.ID=ASSOC.IDPHOTO LEFT JOIN THEME ON ASSOC.IDTHEME=THEME.ID WHERE THEME.ID=1;
récupére tous les champs de tous les enregistrements de PHOTO relié (via ASSOC) au THEME avec ID=1