Forum Clubic

Relations entre tables - PHP - MySQL - PhpMyAdmin

Bonjour,

Je suis tout nouveau dans PhpMyAdmin et les bases de données, et je ne parviens pas à faire ce que je souhaite malgré pas mal de recherches.

Je cherche à lier des tables, mais je ne trouve pas comment faire.

Ex : Une table de joueurs avec leurs caractéristiques, et une table d’équipes, elles aussi avec leurs caractéristiques.

j’aimerais que ce champ équipe soit lié à la table “Equipe” qui contient la liste des équipes et les caractéristiques des équipes.

Donc en changeant le nom de l’équipe dans la table équipe, en affichant le profil des joueurs l’équipe en question serait automatiquement modifiée

A force de fouiller dans les forums, tutoriaux etc, j’ai lu qu’éventuellement cela passerait pas une table “Relations”, mais je ne vois pas trop comment implémenter cela

pour info j’utilise phpMyAdmin 2.6.2 et MySQL 4.0.21-standard, avec des tables pour le moment en MyISAM

Merci !

C’est assez con :

Tu as des identifiants, oki? pour équipe et joueur -> a, b

Ben simple : tu crée une table contenant juste les relations (a, b), et quand tu veux les joueurs de l’équipe a, tu cherche dans cette table par son identifiant, et tu fais une jolie jointure :

SQL
[color=blue;font-weight:bold]SELECT[/color] *

FROM Equipe E
INNER JOIN Relation R ON E.team_id = R.team_id
INNER JOIN Joueur J ON R.player_id = J.player_id

Tente ça dans phpmyadmin et tu verras :slight_smile:
(bien sur faut la table Relation, qui contient juste (team_id, player_id) deux champs de même type que ceux présents dans les deux autres tables.

ça c’est un probleme de pure de bases de données donc l’identifiant(clé primaire )doit migrer vers la table joueur comme ça tu pouras tire l’information de l’equipe d’un joueur a partir d’une jointure
en sql :
create table equipe(
equipe_id number(3) primary key;
nom varchar(30),
.
etc);
create table joueur(
joueur_id number(3) primary key,
nom varchar(30),
.
.
equipe_id number(3) references equipe(equipe_id)
);
et pour savoir le nom d’une equipe d’un joueur dont lidentifiant est 21 il faut ecrire:
select equipe.nom
from equipe,joueur
where equipe.equipe_id=joueur.equipe_id
and joueur.joueur_id=21;