IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Requête complexe: syntaxe


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut [SQL] Requête complexe: syntaxe
    Bonjour,

    voilà je développe un jeu en php et mes connaissance en sql sont limitées.

    Je voudrais donc faire une requête, je suppose de type JOIN UNION.

    En fait j'ai deux tables:

    EQUIPEMENT (id, nom)
    USER_EQUIP (id_joueur, id_arme, type_arme)

    alors dans la table equipement, la colum id correspond à id_arme dans la table user_equip.

    Moi je voudrais réccuperer le nom des armes stockées dans "equipement" pour chaque id d'arme stockée dans la table user_equipe, et celà pour un seul id de joueur, toujours de cette table user_equip.

    Et je sais vraiment pas comment faire.

    J'espère avoir été intéligible.

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 114
    Par défaut
    SELECT EQUIPEMENT.NOM from EQUIPEMENT, USER_EQUIP
    WHERE EQUIPEMENT.id = USER_EQUIP.id_arme


    je n'ai jamais fais de MySQL donc je te donne une syntaxe non normalisé (je vais me faire tapper sur les doigts) mais qui toutefois devrai fonctionner

  3. #3
    Membre éclairé Avatar de liza83
    Profil pro
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Par défaut
    [QUOTE=Pahcixam]
    Moi je voudrais réccuperer le nom des armes stockées dans "equipement" pour chaque id d'arme stockée dans la table user_equipe, et celà pour un seul id de joueur, toujours de cette table user_equip.
    QUOTE]

    petite précision : passes tu en paramètre l'id du joueur ?

    Si c'est la cas tu peux faire une requète telle que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT EQUIPEMENT.NOM,  USER_EQUIP.ID_JOUEUR
    FROM EQUIPEMENT
     INNER JOIN USER_EQUIP
      ON EQUIPEMENT.ID= USER_EQUIP.ID_ARME
    WHERE USER_EQUIP.ID_JOUEUR = 'parametre' ;

  4. #4
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Effectivement je passe en paramètre l'id du joueur. Je vais essayé la requête et je vous tient au courant car je n'ai pas tout à fait finit le script.

  5. #5
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Bon j'ai testé avec cette requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'SELECT EQUIPEMENT.NOM, USER_EQUIP.ID_JOUEUR FROM 
    EQUIPEMENT INNER JOIN USER_EQUIP ON EQUIPEMENT.ID= 
    USER_EQUIP.ID_ARME WHERE USER_EQUIP.ID_JOUEUR 
    ="'.$_SESSION['id'].'"';
    Je n'ai aucune erreur seulement, cette requête ne me retourne rien, seulement un array vide.

    Pourtant dans ma table equipement j'ai une arme avec l'id 1, et dans la table d'equipement du joueur j'ai une arme de type id 1, donc il devrait me retourné le nom de cette dernière qui est stockée dans EQUIPEMENT non ?

    Je sais pas trop comment y expliquer. En tout cas merci de m'avoir répondu, mais là je sais pas trop quoi faire.

  6. #6
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    L'erreur vient peut-être de moi alors,

    je sais bien qu'ici c'est sql mais voilà, je traitre ma requête comme ceci et j'obtient cette Notice:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Thu Aug 24 11:57:31 2006] [error] [client 127.0.0.1] PHP Notice:  Undefined index:  EQUIPEMENT.NOM in C:\\www\\medievalheros\\beta2\\equipement.php on line 24, referer: http://127.0.0.1/beta2/play.php?page=equipement
    Et voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$sql = 'SELECT EQUIPEMENT.NOM from EQUIPEMENT, USER_EQUIP
    	WHERE EQUIPEMENT.id = USER_EQUIP.id_arme';
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    	$data = mysql_fetch_array($req);
     
    	echo 'nom :'.$data['EQUIPEMENT.NOM'];
    Comment je fait pour réccuperer le nom dans une requête comme celle-ci ? Et ceci dans les deux requêtes.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 114
    Par défaut
    n'ayant jamais fais de php, j ai du mal a comprendre.

    Toutefois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'SELECT EQUIPEMENT.NOM, USER_EQUIP.ID_JOUEUR FROM 
    EQUIPEMENT INNER JOIN USER_EQUIP ON EQUIPEMENT.ID= 
    USER_EQUIP.ID_ARME WHERE USER_EQUIP.ID_JOUEUR 
    ="'.$_SESSION['id'].'"';
    le session[] c'est un tableau ?

    si oui alors tu ne peux pas faire comme ca.

    Il faut executer ta requete autant de fois que tu a de joueur dans ton tableau.

    Si ca n'est pas un tableau mais juste un identifiant, colle ta requete telle qu'elle est exécutée stp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Linq to SQL] requête complexe faites chauffer vos méninges ;)
    Par anthyme dans le forum Accès aux données
    Réponses: 5
    Dernier message: 06/06/2008, 09h52
  2. SQL: Requête Complexe
    Par SQLPlus dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2008, 23h24
  3. [SQL] Requête complexe sur plusieurs tables
    Par BFH dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/09/2007, 16h21
  4. [SQL Oracle] Requête complexe
    Par lapartdombre dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/11/2005, 14h31
  5. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo