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] Join, fait apparaitre des enregistrement innexistant


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    Par défaut [SQL] Join, fait apparaitre des enregistrement innexistant
    Bonjour,

    J'ai un petit souci de requête, j'ai actuellement 2 tables :
    • Table: ratemap_recap
      • nom_de_la_map
      • nombre_de_vote_de_la_map
      • moyenne_de_la_map
    • Table: ratemap_vote
      • id_du_membre
      • date_du_vote_du_membre_pour_la_map
      • nom_de_la_map
      • note_du_membre_pour_la_map

    Elles sont remplies comme suit :
    Table: ratemap_recap


    Table: ratemap_vote


    Je cherche une requête qui me sortirais un tableau comme celui là :


    Mon problème viens du fait que le membre ayant l'ID N°2 n'a pas d'enregistrement pour de_nuke et cs_assault dans la table ratemap_vote.
    Du coup, toutes les requêtes que j'ai put essayer mon sortis ça :


    Existe-t'il une solution à ce problème ?

    Merci

    - Laurent -

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Commences par récupérer toutes tes maps.

    Une fois que c'est fait, tu boucles le résultat pour vérifier les votes par utilisateur (si j'ai bien compris ton problème)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    Par défaut
    Oui, il y a cette solution, mais le problème est que je vais m'en sortir avec une boucle et 2 requêtes : la requête qui me sors la liste des maps et une requête qui sera dans la boucle, du coup, si j'ai 100 maps j'aurais fait 101 appel à la base de données, juste pour afficher un simple tableau...

    J'aurais fait j'aurais aimé faire ça avec une seule requête, histoire de limiter les appel à la BDD et optimiser le temps de génération de la page.

    Je pensais qu'en utilisant les jointures externe ça serais possible, mais je ne m'en sors pas..

    Quand j'ai lut ça : "Les jointures externes sont extrêmement pratiques pour rapatrier le maximum d'informations disponible, même si des lignes de table ne sont pas renseignées entre les différentes tables jointes. " je me suis dit chic, c'est pile poile ce qu'il me faut, mais le problème est que ce n'est pas que les lignes de table ne sont pas renseignées, c'est qu'elle n'existe pas :-/

    Il dois bien y avoir une solution...

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    si on considère que $allMyMaps est l'array de la requete que je t'ai conseillé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $myMaps = implode("', '", $allMyMaps);
    avec cette petit ligne, tu peux écrire "WHERE map IN ('".$myMaps."')"

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/08/2008, 11h58
  2. focus qui fait apparaitre des scrollbar
    Par pop_up dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/03/2008, 10h21
  3. Réponses: 3
    Dernier message: 01/12/2006, 20h31
  4. [ADO.NET][SQL SERVER] Comment supprimer des enregistrements?
    Par julien37510 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 01/12/2006, 12h00

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