JeuWeb - Crée ton jeu par navigateur
[Résolu] Systeme Inventaire - 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 : [Résolu] Systeme Inventaire (/showthread.php?tid=2893)

Pages : 1 2


[Résolu] Systeme Inventaire - Tekmerak - 15-08-2008




RE: Systeme Inventaire - Eluox - 15-08-2008

Bonjour Smile

Pourrait tu mettre ton code entre les balises
Code :
[php][/php]
Pour plus de lisibilité stp Big Grin

Merci !)


RE: Systeme Inventaire - Sephi-Chan - 15-08-2008




RE: Systeme Inventaire - Tekmerak - 15-08-2008

Merci pour la deuxieme partit de ton message.

Comme je l'ai dit, j'ai une table session du perso ou je ne stock que le nom des objet (22 emplacement en tout)

et une table base_objet qui contient tout les objet du jeux avec comme caracteristique : nom, poid, prix, type, type2, valeur et description

Edit: j'ai supprimer ma reaction a ton Ton agressif, car j'ai feuilleter plus profondement le forum pour mieu comprendre vos coutume et j'ai vu ta proposition de filtrage de membre. J'en deduit que je n'ai aucune chance de gagner ton estime.


RE: Systeme Inventaire - Sephi-Chan - 15-08-2008

Mon but est que l'intégration de chaque membre se fasse correctement et qu'au final, tout le monde y gagne. L'idée du filtrage n'était qu'une mascarade pour pousser les membres à participer au débat activement. Smile

Quant à ta place dans mon estime, je pense qu'on s'en fiche pas mal ; si tu t'investis un peu dans la communauté, il n'y aura pas de problèmes entre nous. Wink

Pour en revenir à ton problème, je te conseille pour opter pour une méthode plus propre : l'utilisation d'une table qui relie des objets à un personnage. Faire cela t'apportera une notion supplémentaire et fondamentale pour créer un jeu : les jointures SQL.

Pour mettre une telle chose en place, il te faut une table Personnages, qui contient les informations propres à… un personnage.
Il te faudra également une table Objets, qui contiendra contre toute attente les informations relatives aux objets.
Et enfin, tu auras besoin d'une table Personnage_a_objet qui contiendra une entrée par objet que porte chaque personnage.

Cette technique suppose que tu utilises des identifiants numériques plutôt que des noms. En gros, tes tables Personnages et Objets auront un champ id qui sera une clé primaire (primary key) de type Int, avec l'attribut Unsigned et l'option auto_increment. Tu peux nommer ce champ personnage_id pour la table Personnages et objet_id pour la table Objets.

Ta table de relation (Personnage_a_objet contiendra alors deux champs, personnage_id et objet_id. Dès qu'un personnage obtient un objet, une entrée est créée dans cette table avec comme valeurs l'identifiant du personnage et celui de l'objet qu'il a acquis.

Ensuite, concrètement, comment tu vas utiliser ça ?

Pour sélectionner les objets d'un personnage, il te suffira d'avoir l'identifiant de ton personnage et de faire :
Code PHP :
<?php 
$ressource
= mysql_query("
SELECT O.*
FROM personnages P
JOIN Personnage_a_objet PaO
ON PaO.personnage_id = P.personnage_id
JOIN Objets O
ON O.objet_id = PaO.objet_id
WHERE P.personnage_id =
$idDeTonPersonnage;
"
);

Et tu peux même ajouter une condition sur le type d'objet ! Exemple :
Code PHP :
<?php 
$ressource
= mysql_query("
SELECT O.*
FROM personnages P
JOIN Personnage_a_objet PaO
ON PaO.personnage_id = P.personnage_id
JOIN Objets O
ON O.objet_id = PaO.objet_id
WHERE P.personnage_id =
$idDeTonPersonnage
AND O.type = 'arme';
"
);

Voici comment il faut comprendre cette requête :
  • Sélectionne rien dans la table Personnages à laquelle je ferais desormais référence par la lettre P car c'est plus rapide à écrire ;
  • Sélectionne tout dans la table Objets à laquelle je ferais appel plus tard, sous le nom de O ;
  • Va regarder dans la table Personnage_a_objet que j'appellerais PaO et donne-moi les entrées qui ont le même personnage_id que le personnage_id de mon personnage ;
  • Va regarder dans la table Objets (que j'appelle O) et donne moi les entrées dont le objet_id est le même que celui des entrées que je t'ai demandé il y a un instant ;
  • Ne prends que les entrées de Personnages dont l'identifiant est $idDeTonPersonnage ;
  • (Ne prends que les objets dont le type est "arme"Wink

Voilà, j'espère que tu as compris le principe car les jointures sont indispensables dans la réalisation d'une application (même un banal système d'articles avec commentaires). Si tu ne comprends pas, n'hésite pas à poser des questions.


Sephi-Chan


RE: Systeme Inventaire - Tekmerak - 15-08-2008

Quand j'ai dit estime je voulais pas vraiment dire estime, j'ai pas trouvé le mot approprié.

Sinon, pour ce que tu me propose (sa fait 20 min que j'attend l'edit alors je commence a commenter).

Question bete: avec ton systeme de Personnage_a_objet sa risque pas de faire beaucoup beaucoup d'entré ?
Sinon, j'avoue que je n'y avais pas penser et que sa a l'air pas mal. J'attend le suite de l'explication.

Edit: tu a edit pendant que je repondait...

Et bien, j'ai pas tout compris mais apres plusieur relecture sa devrai passer.
Merci


RE: Systeme Inventaire - Sephi-Chan - 15-08-2008

Estime ou pas, on s'en fout. :p

En fait, ça fait effectivement beaucoup d'entrée, mais tu t'en fiches car ce n'est que de l'espace de stockage dans la base de données. De plus, les chiffres occupent très peu d'espace (cf. MySQL - Capacités des colonnes et Types numériques) mais sont bien plus facile à traiter pour un système informatique qu'une chaîne de caractères, donc au final, plus performantes.


Sephi-Chan


RE: Systeme Inventaire - Tekmerak - 15-08-2008

ok, sinon j'ai compris (enfin je crois).


RE: Systeme Inventaire - Sephi-Chan - 15-08-2008

Le mieux pour assimiler l'utilisation des jointures, c'est de les pratiquer à fond. C'est tellement essentiel comme notion.

Si tu estimes ton sujet résolu, n'oublie pas de mettre un marqueur [Résolu] en début de titre de ton sujet. Wink


Sephi-Chan


RE: Systeme Inventaire - Tekmerak - 15-08-2008