JeuWeb - Crée ton jeu par navigateur

Version complète : [Résolu] Systeme Inventaire
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Exporte ta base de données via phpMyAdmin et colle le code SQL que ça te donne sur Pastebin.com, ç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
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))
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
En prenant ta BDD j'me suis permis de t'aider 2

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 2
Voilà, c'était donc juste une erreur d'inattention. 2

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
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 16
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] ! 16
Pages : 1 2
URLs de référence