JeuWeb - Crée ton jeu par navigateur
Nation et vue sur la page - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Nation et vue sur la page (/showthread.php?tid=5422)

Pages : 1 2 3


Nation et vue sur la page - golradir - 14-05-2011

Bonjour,

Je voudrais savoir comment crée une nation, qui est ajouté aux joueurs que par un admin via la table:

J'ai commencer à crée la table:

Code :
CREATE TABLE `nation` (
`id_nation` INT NOT NULL ,
`nom_nation` VARCHAR( 25 ) NOT NULL ,
`couleur_nation` VARCHAR( 15 ) NOT NULL ,
`flag_nation` VARCHAR( 80 ) NOT NULL
) ENGINE = MYISAM ;

Comme on peut voir sur le code, il aura un nom de nation, une couleur et une image (drapeau)

Ensuite j'aimerais qu'une image apparaissent sur la page membres en fonction de la nation donné aux joueurs. (mais pas le flag_nation)

Merci[/quote]


RE: Nation et vue sur la page - popayan - 14-05-2011

déjà, as tu une table user? si non, il faudra la créer, si oui, il faut lier les 2 tables par une clé étrangère
Code :
CREATE TABLE `nation` (
`id_nation` INT NOT NULL ,
`user_id` INT NOT NULL ,
`nom_nation` VARCHAR( 25 ) NOT NULL ,
`couleur_nation` VARCHAR( 15 ) NOT NULL ,
`flag_nation` VARCHAR( 80 ) NOT NULL
) ENGINE = MYISAM ;

ensuite, tu récupères l'id de ton joueur et une requete "SELECT * FROM nation WHERE user_id=".$user_id devrait suffire.


RE: Nation et vue sur la page - golradir - 14-05-2011

Oui, j'ai déjà une table user.
Comment je relie les deux tables ?


RE: Nation et vue sur la page - ToraTora - 14-05-2011

(14-05-2011, 11:25 AM)popayan a écrit : déjà, as tu une table user? si non, il faudra la créer, si oui, il faut lier les 2 tables par une clé étrangère
Code :
CREATE TABLE `nation` (
`id_nation` INT NOT NULL ,
`user_id` INT NOT NULL ,
`nom_nation` VARCHAR( 25 ) NOT NULL ,
`couleur_nation` VARCHAR( 15 ) NOT NULL ,
`flag_nation` VARCHAR( 80 ) NOT NULL
) ENGINE = MYISAM ;

ensuite, tu récupères l'id de ton joueur et une requete "SELECT * FROM nation WHERE user_id=".$user_id devrait suffire.

Ce n'est pas la bonne façon de faire.

Comment tu fais pour avoir plusieurs utilisateur ayant la même nation ?

Tu as 2 solutions :
  • Ajouter nation_id dans ta table utilisateur
  • Créer une nouvelle table qui relie ton utilisateur à sa nation (cette solution permet a un utilisateur d'appartenir à plusieurs nation)





RE: Nation et vue sur la page - golradir - 14-05-2011

Justement, j'ai deux tables:

-> membre
-> nation

Comment je relie les deux ?


RE: Nation et vue sur la page - niahoo - 14-05-2011

tu connais les jointures SQL ?



RE: Nation et vue sur la page - php_addict - 14-05-2011

on vient de te le dire:

dans ta table membre tu rajoute une colonne id_nation qui contiendra l'id de la table nation

et apres pour un SELECT tu fait une jointure INNER JOIN


SELECT membre.pseudo , nation.id , nation.nom
FROM membre
INNER JOIN nation ON nation.id = membre.id_nation
WHERE membre.id = 2156

un truc du genre...cet exemple te retourne le pseudo du membre id = 2156 et l'id de sa nation et le nom de la nation

apres cela ne fonctionne que si tes membres n'appartiennent qu'à une seule nation

cela a un nom ça nom ? base de donnée relationelle? pas certain...je n'ai pas beaucoup de notion en theorie...


RE: Nation et vue sur la page - Sephi-Chan - 14-05-2011

Avec une table membre_nation qui contient un champ membre_id (qui contient l'id d'un membre) et un champ nation_id (qui contient l'id d'une nation). Et après tu utilises une jointure quand tu veux récupérer les nations d'un membre (ou les membres d'une nation).

Type :


SELECT N.*
FROM nations AS N
JOIN membres_nations AS MN ON MN.nation_id = N.id
WHERE MN.membre_id = 1;

Ici, la requête parcours les nations et pour chaque nation récupère les membres_nations associées (pour qui l'id de la nation correspond à la colonne nation_id) afin de pouvoir lire la colonne membre_id et ainsi ne garder que les nations associées au membre 1.


RE: Nation et vue sur la page - niahoo - 14-05-2011

pour éclaircir,

méthode php_addict : 1 champ nation_id dans la table membres = 1 nation par membre
méthode sephi : 1 table supplémentaire avec champs membre_id/nation_id = plusieurs nations par membre.

fais ton choix, et apprends le pricipe et les méthode de jointures en bases de données relationnelles.


RE: Nation et vue sur la page - golradir - 15-05-2011

Chaque joueur n'aura qu'une seule nation et ne pourras pas en avoir d'autres