JeuWeb - Crée ton jeu par navigateur
Batiment, machines, etc... - 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 : Batiment, machines, etc... (/showthread.php?tid=799)



Batiment, machines, etc... - Cyril381 - 13-02-2007

Bonjour a tous.

Je vais arriver a un moment de mon projet que j'aime pas trop :

-Comment faire pour que le membre est construit par exemple une maison et ceci s'affiche j'avais pensez a :

dans la BDD mettre des champs : maison, etc...

mais vut qu'il y aura au moin 50 habitation et magasin, 100 machines de geurre, chevalier etc... Je me tourne vers vous pour m'aider.

Ma question : Comment faire pour faire se que j'ai expliquer si dessus?

S'il vous plait. Merci d'avance


RE: Batiment, machines, etc... - Seren - 13-02-2007

Tu ne dois pas mettre un champs Maison dans une table mais il te faut une table générale "construction".

Table construction :
construction_id | construction_type | propriétaire | etc...

construction_id : c'est un numéro unique qui identifie le bâtiment.
construction_type : c'est un numéro qui identifie le type de bâtiment.
Par exemple :
0 = une maison
1 = un marché
2 = une église
3 = une caserne
...
propriétaire : le numéro du propriétaire.

Et d'autres information qui peuvent servir pour un bâtiment, par exemple sa position, son coût, etc...

Et ensuite pour accèder à tous les bâtiment d'un membre il faudra faire un truc du style.
SELECT * From table_membre, table_construction WHERE table_membre.identifiant = table_construction.propriétaire.


RE: Batiment, machines, etc... - Cyril381 - 13-02-2007

D'accord mais propriétaire en faite il y aura plusieur par exemple :

Dans la page construction il y a :

Acheter maison, caserne etc...

Joueur1 achète 1 maison et plus tard Joueur2 achète 5 maison. joueur1 ne perd rien. Il garde sa maison.

je ne veux pas que a chaque fois que quelqu'un achète une maison sa annule l'autre.


RE: Batiment, machines, etc... - Seren - 13-02-2007

Dans la table construction il n'y pas qu'une seule ligne il y a une ligne par construction.

Si je prends ton exemple, avec Joueur 1 a une maison et Joueur 2 à 5 maisons, et Joueur 3 avec une étable ça donnera :

construction_id | type | propriétaire | ....
0 |maison | Joueur1
1 |maison | Joueur2
2 |maison | Joueur2
3 |maison | Joueur2
4 |maison | Joueur2
5 |maison | Joueur2
6 |étable | Joueur3

A mon avis avant de te lancer, il faut que tu révises un peu comment les bases de données relationnelles fonctionnent.


RE: Batiment, machines, etc... - Cyril381 - 13-02-2007

Oui ^^ mais je ne voyais pas comme sa. Merci de votre aide. Ma table sera :

construction :

Id
type
propriétaire

et une autre

batiment :
id
type
nom
prix

merci encore de votre aide


RE: Batiment, machines, etc... - denisc - 14-02-2007

... Moi j'aurai fait ça : (en souligné les clés de table)

[users]
id_user
nom
...

[batiments]
id_batiment
libelle
prix
...

[constructions]
id_batiment
id_user
nombre

... Sauf s'il y a d'autres infos dans la table de construction (auquel cas, il faut supprimer le champ nombre qui indique le nombre de batiment construit et rajouter un id_construction, qui permettra de distinguer les construction. Cet id_construction devriendra alors la clé primaire de ta table)


RE: Batiment, machines, etc... - Pio154 - 14-02-2007

denisc a écrit :... Moi j'aurai fait ça : (en souligné les clés de table)

[users]
id_user
nom
...

[batiments]
id_batiment
libelle
prix
...

[constructions]
id_batiment
id_user
nombre

... Sauf s'il y a d'autres infos dans la table de construction (auquel cas, il faut supprimer le champ nombre qui indique le nombre de batiment construit et rajouter un id_construction, qui permettra de distinguer les construction. Cet id_construction devriendra alors la clé primaire de ta table)

Moi je suis dacord avec denisc, faire comme sa ses le meilleur solution pour un petit programmeur, aussi non, tu peux faire sa sur la table membres :
Code :
id    INT(11) auto_increment;
pseudo ......;
mot_passe.......;
maison.....;
château......;
ect....;

Puis après il te reste plein de truc à faire.....
Met prend celle que denisc ta proposer.