Se connecter avec
S'enregistrer | Connectez-vous

Mysql : jointure de table ?

Dernière réponse : dans Programmation

Je vous explique la situation!

J'ai une table 'membres' qui contient toutes les données des membres.
(-nom
-prénom
-adresse
-...
)
Je voudrais pouvoir Afficher sur une page un tableau avec une ligne pour chaque membre!
Il y aurait plusieurs colonnes dans ce tableau :

-Nom
-Prénom
-Activité 1
-Activité 2
-Activité ...
-...
-Montant à payer



Je m'explique donc, tous les membres font partie d'un groupe qui participe à différentes activités.
Jer voudrait dans ce tableau pouvoir rajouter une colonne pour chaque activité.
Mais chaque activité à ses caractéristiques propres (montant)!
Je me pose donc les questions suivantes:

Quel fonction permettrait d'ajouter au fur et à mesure de l'année des activités (ayant leur propre montant) dans le tableau?
Quel fonction permettrait de faire la somme des différents montants pour chaque membres dans la case 'montant à payer)? (sachant que le membre ne doit pas forcément payer la même chôse que les autres membres en raison de son absence par exemple)


Ce sera tout!!

Je ne demande pas un code tout fait mais je veux juste savoir si c'est possible et si oui à l'aide de quelles fonctions.

Merci d'avance

Voici une image pour shématiser le tout :

Autres pages sur : mysql jointure table

Lassé par la pub ? Créez un compte

Bouquine les docs de MySQL, tu as des fonctionnalités qui permettent d'envoyer des requêtes sur plusieurs tables à la fois et selon des critères précis..

Ensuite, c'est ton script de traitement (PHP ou autre) qui va gérer les résultats des requêtes, les traiter avec d'autres paramètres externes (genre nombre de fois que machin a effectué l'activité chose au prix truc)..

Pour finir, une autre requête SQL fera l'opération inverse de mise à jour des tables précisées avec les valeurs calculées par ton script de traitement..

Simple.. (m'enfin j'dis ça :ange: .....)

:jap: 

J'ai été voir dans le manuel mysql mais je ne comprends pas trop ton résonnement!!

Quelques précisions pourraient me mettre sur la voie!!

Combien de table crérais-tu?Leur nom?
En gros quel type de requête utiliserais-tu?
Comment "traiter avec d'autres paramètres externes ?

D'après ce que tu disais, tu devrais avoir trois tables membre, groupe, activités.
Pour interagir avec ta base, et afficher les données, il faut que tu utilises un langage de programmation (php), qui te permettra d'effectuer des requêtes de tous styles pour ensuite afficher les résultats en html (et CSS..)
Il te faut donc apprendre un peu de programmation en plus du SQL, un tuto de php/mysql te permettrait peut-être d'y voir plus clair.

Effectivement, de mon côté je ferais la gestion des informations de tes tables par PHP, seul langage de prog Web dynamique que je commence à connaître..

Il y a un excellent tuto PHP pour débutants ici :
>> http://www.siteduzero.com/php/

Et son complément XHTML / CSS :
>> http://www.siteduzero.com/xhtml-css/

Par contre, si c'est pour une utilisation locale, PHP t'oblige à avoir un serveur Web installé (Apache par ex.) sur ta bécane.. Pour ça, EasyPHP est un tout-en-un bien connu (PHP + Apache + MySQL) >> http://www.easyphp.org/

Quand je parle de paramètres externes, je parle de ceux que tu entres via l'interface utilisateur que tu auras préalablement créée (en XHTML si tu prog en PHP), là où tu pourras dans un formulaire préciser pour l'utilisateur machin quelles activités ont été effectuées, combien de fois et sur la période truc etc..

Une fois le formulaire validé, ton script PHP (ou autre) traite ces données, les met en relation avec celles déjà existantes dans les tables (lues en début de script par une requête MySQL), comme les montants des activités précédemment effectuées auxquels vont s'ajouter les nouveaux montants des nouvelles activités, et les inscrit dans les tables via une nouvelle requête MySQL, soit préalablement fixée dans le script, soit générée par des conditions liées au traitement des données par le script..

Mais il te faut ne pas oublier de définir des points communs entre toutes tes tables, le plus souvent sous la forme d'un ID (identifiant) unique (le plus souvent numérique et incrémentiel au moment de l'ajout d'un utilisateur dans la table des coordonnées persos, ID repris ensuite pour entrer les valeurs liées à cet utilisateur dans les autres tables). Ce qui impliquera que toutes tes tables auront un champ ID, mais seule la table principale (coordonnées persos des utilisateurs) définira ce champ comme incrémentiel.

Cet ID te servira comme condition de recherche dans tes requêtes MySQL (condition "WHERE id='machin'" ou "WHERE id='$id'")..

:jap: 

Merci pour ces précisions!! Je connais quand même un minimum sur le php (j'ai déjà créé système de nexs, forum, etc) Mais pour cette fonction là, je calle!! je ne sais pas très bien par où commencer!! Enfin j'y réfléchirai et si j'ai besoin d'un conseil je ferai appel à vous!!
Lassé par la pub ? Créez un compte