Problème tout bête !

Eléphant du PHP | 287 Messages

23 févr. 2009, 14:59

Bonjour,
J'ai un site avec des photos du monde entier.
Celles-ci sont classées par pays, mais je voudrai classer mes pays par Continent, voire Sous-continent.
Ma base MySQL est composée de 4 tables :
- Continent
- Sous-continent
- Pays
- Photos
Quelqu'un a-t-il une idée ?
Je pensait rajouter un champ dans ma table "Pays" du style "id_continent".
Peut-etre y-a-t-il plus simple ?
Merci de votre aide.

ViPHP
ViPHP | 1136 Messages

23 févr. 2009, 15:09

hi,

Ce problème est plus un probléme mysql , quels sont les relations de tes tables ?

Tout va se jouer avec des ORDER BY ... mais sans connaitre les relations entre tes tables celà me parait difficile.

Ch.

Eléphant du PHP | 287 Messages

23 févr. 2009, 15:16

Voilà mes tables :
- Continents : id, continent
- Sous-continent : id, sous_continent
- Pays : id, nom
- Photos : id_photo, id_pays, image

Peut-être que ça va t'aider

ViPHP
ViPHP | 1136 Messages

23 févr. 2009, 15:25

Pour moi il manque les relations suivantes :

celle entre le pays et le sous continent et
celle entre le sous continent et le continent

- Continents : id, continent
- Sous-continent : id, sous_continent,id_continent
- Pays : id, nom,id_sous_continent
- Photos : id_photo, id_pays, image

Ce qui te permet de retrouver à partir d'une photo , n'importe quelles autres informations ( le pays , le sous continent et / ou le continent auquel le pays appartient ) via des jointures basiques

Apres , je ne suis pas un expert en gestion de bases de données ... mais ca me semble plus logique comme ceci ...

Ainsi tu peux organiser tes photos comme tu le souhaites :

par nom de photo
par pays
par sous continent
par continent

ect ... ( apres c'est à toi de creer les ordres et regroupements que tu souhaites )

Ch.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 févr. 2009, 15:50

Modération :
Romuald632, merci d'utiliser un titre clair et qui correspond bien à ta demande.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 287 Messages

23 févr. 2009, 17:00

Donc j'ai créé mes nouvelles tables en rajoutant mes id_continent et id_sous_continent.
Maintenant je voudrai afficher mes pays par continent
Voilà mon code :
$pays = mysql_query("SELECT DISTINCT nom, drapeaux FROM photo LEFT JOIN continent ON continent.id_continent = continent.id AND pays ON photo.id_pays = pays.id ORDER BY nom") or die(mysql_error());