Données imbriquées

Fermé
jarailet Messages postés 164 Date d'inscription lundi 16 janvier 2012 Statut Membre Dernière intervention 14 mars 2024 - 27 avril 2014 à 17:31
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 3 mai 2014 à 14:03
Bonjour,


et MySQL avec wamp.

j'ai une série de 500 fiches sur des fleurs sauvages, une série de 25 fiches randos et ... 12 mois dans l'année (au moins une série qui ne risque pas de s'allonger... enfin je crois).
J'aimerais obtenir par exemple les noms des fleurs visibles en sélectionnant le mois et la balade, ou les trois ou quatre balades à faire si je sélectionne une fleur et un mois...
Problème: la campanule fleurit en avril pour deux balades, en mai pour trois autres, et en avril et mai pour d'autres encore...
Je ne vois pas comment faire avec une simple base. Il doit bien exister un moyen quand même. Avez-vous un tuyau, un lien vers une doc (pour amateur !)
Merci

alain

5 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
2 mai 2014 à 14:33
Bonjour !
Niveau base de donnée, tu pourra t'en sortir avec trois tables :

- Table fleurs qui contiendra sa description et toutes informations l'a concernant (Ainsi qu'un identifiant unique)

- Table promenade, qui contiendra de la même façon ses infos (Département, durée, km, etc, ... ) et un identifiant unique pour lui aussi.

- Et enfin ta table fleuraison qui contiendra l'identifiant de la plante, l'identifiant de la promenade et le mois de floraison

Une fois tes tables rempli, le reste ne sera que du php assez simple et quelques requête sql.
0
Merci. Le problème est plus complexe.
Voici les données pour deux ou trois fleurs:
1:nom et lien vers fiche/ 2: balades / 3 : mois de floraison

-1 aconit (http:///) / 2 : balade le long du gave / 3 : mars + avril
/2 : pâturages / 3 : août +septembre

- 1 érythrone (http...) / 2: balade Sustarry / 3 : fevrier + mars
/ 2 : balade Ahuzki / 3 : mars + avril

Chaque fleur se rencontre souvent sur plusieurs balades et, suivant la balade, à des mois parfois différents.
Je voudrais qu'en sélectionnant deux données, j'obtienne la troisième
Par exemple aconit+gave --->fevrier et mars
ou erythrone+avril ----> Ahuzki
ou septembre+paturages ----> aconit

le plus simple serait bien entendu, de faire autant d'enregistrements que de cas :
aconit/gave/mars
aconit/gave/avril
aconit/paturages/aout
aconit/paturages/septembre

mais sur 500 fleurs *20 balades*12 mois....

J'ai su créer une table "simple" avec les caractères de chq fleur et récupérer ttes les fleurs correspondant.
Mais là, il y a un gros mélange à organiser ! Je patauge, rien que dans le projet !
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
2 mai 2014 à 21:24
Une fois tes trois table organiser comme indiqué dans mon premier message, ce que tu demande sera pas trop compliqué :

récupérer les mois donnerait par exemple :
select distinct mois from fleuraison where id_balade=X and id_fleurs=Y

Une/Des Fleurs :
select distinct id_fleurs from fleuraison where mois='avril' and id_balade=X

Une/Des Balades :
select distinct id_fleurs from fleuraison where mois='avril' and id_fleurs=Y

(Avec x et y les valeurs des identifiants de la bdd)

Après, une simple jointure(ou une deuxième requête) te donnera les infos de l'une des autres tables si besoin.
0
Merci. D'après les requêtes, la table qui sert pour le tri est juste la 3e (floraisons) qui doit donc contenir toutes les données : la même fleur enregistrée sur autant de lignes qu'il y a de mois et de lieux de floraison comme supposé plus haut. je crois que je vais réduire le bouquet à moins de 500 exemplaires !
Bonne journée
alain
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 mai 2014 à 14:03
Tes fleurs au final sont dans une table à part, justement pour évitez de répéter les données.
La données floraisons qui te permet en effet de faire le tri contient juste l'identifiant de la fleurs qui se rapporte à l'autre table.

Donc oui, ta fleurs est présent plusieurs fois dans la table floraison, mais seulement sous la forme d'un identifiant unique.
0