3 tables et 1 tableau

Bonjour,

I) Je voudrais pouvoir afficher les données de 3 tables dans un meme tableau. J’ai ces troistables :

MEMBRES : id_membre, nom, prenom, pays, pseudo, password.

RAPORT_MEMBRE : id_raport_membre, id_membre, temps_passe.

RANG : id_rang, nom_rang, image_rang

Voilà ce que j’aimerai faire mais que je n’arrive pas à faire depuis des jours. Il faudrait que l’utilisateur qui est inscrit, puisse en ayant rempli un formulaire voir les données le concernant dans un tableau avec les informations suivantes:

pseudo | pays | id_membre | temps_passe | image_rang

II) Il faut ensuite que image_rang change en fonction de temps_passe.

Vous pouvez vous rendre sur le site qui est en cour de construction. Dans la rubrique Sailors vous pouvez voir un tableau qui est générer par la BDD mais qui ne contient que les infos d’une table:

vmf.eur.st…

Je reste à votre disposition si je n’est pas ete asser clair.

Merci

Julien

Quelles sont les relations des tables? Cardinalité?

1 membre ne peut avoir qu’un rang - 1 rang peut concerner plusieurs membres.

1 membre peut remplir plusieur rapport - 1 rapport ne concerne qu’un membre.

A mon avis, tu ne t’en sortiras pas sans deux requêtes.

Une première pour sélectionner tes utilisateurs, la seconde pour les données associées.

Si tu y arrives avec un seul cas, ça sera pas plus compliqué avec de l’imbrication

Euh pardon mais j’ai pas compris comment on choissait le RANG, c’est à partir de quel donnée qu’on se base, temps passé?

Pas sûr d’avoir tout compris: en quoi change image_rang quand temps_passe change ?

Puisque si j’ai bien compris on a un rang par membre mais (1 ou) plusieurs rapports, non ?
Et accessoirement on aura plusieurs temps_passe pour un membre, mais un seul image_rang par membre.

Be more specific comme dirait le facteur.

MEMBRES : id_membre, nom, prenom, pays, pseudo, password.
RAPORT_MEMBRE : id_raport_membre, id_membre, temps_passe.
RANG : id_rang, nom_rang, image_rang

Si je comprend bien, on a :

MEMBRES peut avoir de 0 à 1 rangs, dépendant du RAPPORT_MEMBRE (avec deux P à rapport, c’est mieux) ?

Ce qui me choque c’est qu’on ne connaît pas du tout les références ?

id_raport_membre c’est la clef primaire de la table RAPORT_MEMBRE? id_membre une clef étrangère pointant sur MEMBRES?

Et dans ce cas, comme veux tu récupérer le RANG alors qu’il n’y a aucune relation entre ces trois là?

manque une information dans rang pour déterminer l’interval de temps passé concerné

RANG : id_rang, nom_rang, image_rang, limite_inf_temps_passe, limite_sup_temps_passe

MEMBRES : id_membre, nom, prenom, pays, pseudo, password.

RAPORT_MEMBRE : id_raport_membre, id_membre, temps_passe.

select m., r. from membres m, rang r where m.temps_passe > r.limite_inf_temps_passe and m.temps_passe <= r.limite_sup_temps_passe

ps : les intervals doivent être disjoints

Bonjour à tous,

Pour etre plus clair dans ma demande voici une illustration graphique :

img509.imageshack.us…

Donc je dois afficher les infos de l’utilisateur et son grade en fonction du nombre d’heures qu’il à effectué. ( Le grade change suivant une plage horaire defini). Ex : 100h => affiche grade 1; 200 heures => affiche grade 2.

Merci

donc c ce que je dis il faut que la table RANG contienne

id_rang;nom_rang; image_rang;limite_inf_temps_passe;limite_sup_temps_passe
1;Grade 1; grade1.png; 0;100
2;Grade 2; grade2.png; 100;200

CQFD

Merci !

Une derniere question : Le membre est déjà enregistrer donc dispose déjà d’un id dans la table membre. Comment faire pour que lorsqu’il rempli un formulaire pour entrer son temps, ce dernier se place automatiquement sur la ligne du membre?

comprend pas la question :frowning:

tu connais forcement l’id du membre car il est forcément authentifié au moment où il saisit … non ?

Oui il est identifié. En faite j’ai du mal à comprendre comment faire pour juste en saisissant un formulaire meme en etant identifié, le champs “temps” qu’il remplira se modifiera automatiquement dans la table en sachant de quelle utilisateur il s’agit.

y a rien d’automatique…

c toi qui devra stocke quelque part (session, champ hidden, etc) l’id du gars pour le mettre dans l’insert …

dis moi tu récupère un truc déjà existant non ?

Comment ça? :frowning:

Je crois que je n’y arriverai jamais…

c’est pas toi qui a commencé ce site…

J’ai récupéré un kit graphique c’est tout. Le reste c’est moi qui l’est fait. Pourquoi?

ou c ton premier formulaire ?

Nan j’ai déjà un formulaire pour le l’utilisateur s’enregistre dans la base.