Sephi-Chan
Administrateur
      
Messages : 4,492
Inscription : Aug 2006
|
RE: Systeme Inventaire
Exporte ta base de données via phpMyAdmin et colle le code SQL que ça te donne sur [url=http://pastebin.com/[/url]Pastebin.com[/url], ça me permettra de tester.
Qu'est-ce que ça te donne quand tu mets cette requête dans phpMyAdmin (en supposant que tu ai un personnage qui a une id = 1 dans ta base de données) ?
Code :
SELECT objet.*
FROM session
JOIN inventaire
ON inventaire.personage = session.id
JOIN Objet
ON Objet.id = inventaire.objet
WHERE session.id = 1
AND objet.type = 'arme';
Sephi-Chan
www.sephi-chan.fr
|
|
| 08-15-2008 11:44 PM |
|
Tekmerak
Membre
Messages : 24
Inscription : Aug 2008
Réputation : 0
|
RE: Systeme Inventaire
http://pastebin.com/m74ae218f
Quand je met ton code, sa me met l'objet voulu (oui il y a un seul objet de type arme dans ma base de donné (un seul tout court d'ailleur))
|
|
| 08-16-2008 12:03 AM |
|
Sephi-Chan
Administrateur
      
Messages : 4,492
Inscription : Aug 2006
|
RE: Systeme Inventaire
Dans ce cas, c'est que la requête fonctionne bien, non ? Où est-ce que ça bloque ? Quand tu dis que "ça ne marche pas", tu peux détailler s'il te plaît ?
Sephi-Chan
www.sephi-chan.fr
|
|
| 08-16-2008 12:30 AM |
|
Eluox
Membre
Messages : 935
Inscription : Oct 2007
Réputation : 8
|
RE: Systeme Inventaire
En prenant ta BDD j'me suis permis de t'aider
Moi sa donne sa, et sa fonctionne niquel
Code PHP :
$id = 3;
$ressource = mysql_query(" SELECT o.id, o.nom FROM session AS s LEFT JOIN inventaire AS i ON i.personage = s.id LEFT JOIN objet AS o ON o.id = i.objet WHERE s.id = ".$id." AND o.type = 'arme' ") or die (mysql_error());
if(mysql_num_rows($ressource) <= 0) { echo "Vous n'avez pas d'objet"; }else { echo '<form method="post" action="traitement_changement_equipement.php"><p>Main droite : '; echo '<select name="main_droite">';
while($donnee = mysql_fetch_assoc($ressource)) { echo '<option value="'.$donnee['nom'].'">'.$donnee['nom'].'</option>'; }
echo '</select>'; }
@Sephi : Ta requête n'a rien renvoyer techniquement dans PMA, tout simplement car le seul user de la table session a pour ID 3 et non 1 comme dans ta requête
(Ce message a été modifié le : 08-16-2008 01:03 AM par Eluox.)
|
|
| 08-16-2008 01:01 AM |
|
Sephi-Chan
Administrateur
      
Messages : 4,492
Inscription : Aug 2006
|
RE: Systeme Inventaire
Voilà, c'était donc juste une erreur d'inattention.
Par contre, la nouvelle structure que tu as adopté est moins claire. Dans un système (que ce soit un jeu, un forum ou autre), les utilisateurs ne s'appellent pas des sessions. Ce sont des joueurs, des utilisateurs ou autre.
De même, on préférera un nom pluriel à la table. La table Utilisateurs contient plusieurs utilisateurs.
Ensuite, la table de relation doit avoir un sens. La table Personnage_possede_objet a un sens : elle contient des enregistrement qui associe 1 personnage à 1 objet.
Ce ne sont que des conseils de notations, mais ils sont très pratiques, surtout quand tu commences à avoir des requêtes un peu plus complexes.
Sephi-Chan
www.sephi-chan.fr
|
|
| 08-16-2008 01:14 AM |
|
Tekmerak
Membre
Messages : 24
Inscription : Aug 2008
Réputation : 0
|
RE: Systeme Inventaire
MErci !! Sa marche cette fois.
Pour les nom je me doute que sa peux paraitre louche mais sur le coup sa me parraissait plus simple et je commence deja a m'y habitué (surtout pour le session). Et puis sa personnalise les code
|
|
| 08-16-2008 12:36 PM |
|
Sephi-Chan
Administrateur
      
Messages : 4,492
Inscription : Aug 2006
|
RE: [Résolu] Systeme Inventaire
Justement, la personnalisation du code est à éviter. Il faut que ce soit compréhensible par tous ceux qui lisent ton code. C'est n'est pas le cas avec des noms exotiques. Je ne peux que te conseiller d'utiliser des noms plus génériques, pour la clarté des choses.
Mais bon, c'est clair que je ne peux pas t'y forcer. Tu devras le faire tôt ou tard de toute façon. J'essaye juste de te convaincre d'y passer avant que ça ne devienne vraiment chiant car plus tu attends, plus tu auras de choses à changer lors du changement (qui ne manquera pas d'arriver).
Sephi-Chan, merci pour le tag [Résolu] !
www.sephi-chan.fr
|
|
| 08-16-2008 12:48 PM |
|