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 :

Problème avec les jointures


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut Problème avec les jointures
    Bonjour,

    Pouvez-vous m’aider svp
    Je n’arrive pas à faire des multiples jointures


    Comme ceci ca fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = $db->query("SELECT * FROM ps_product_lang 
    INNER JOIN ps_image_lang 
    ON (ps_product_lang.id_product = ps_image_lang.id_image) 
    INNER JOIN ps_category_product 
    ON (ps_product_lang.id_product = ps_category_product.id_product) 
    WHERE name LIKE '%" . $queryString . "%'");

    Mais quand je rajoute une nouvelle jointure ca ne fonction plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = $db->query("SELECT * FROM ps_product_lang 
    INNER JOIN ps_image_lang 
    ON (ps_product_lang.id_product = ps_image_lang.id_image) 
    INNER JOIN ps_category_product 
    ON (ps_product_lang.id_product = ps_category_product.id_product) 
    INNER JOIN ps_category_lang 
    ON (ps_category_product.id_category = ps_category_lang.id_category) 
    WHERE name LIKE '%" . $queryString . "%'");

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    Bonjour,

    Quand vous dites que ça ne marche plus, qu'entendez vous par là ?

    Avez vous une erreur affichée quelque part et si oui, quelle est-elle ?

    Si pas d'erreur, vous pourriez explorer cette piste :
    en partant du postulat que vous êtes sous MySQL et MyISAM (ou autre moteur, mais sans relation déclarée entre ps_category_lang et ps_category_product), il vous faudrait vérifier que vous avez bien correspondance entre les id_category de la première table et la seconde.
    Si pas de correspondance, il est normal que la base de données ne vous retourne aucune ligne.
    Pour palier à ce cas de figure, vous avez deux solutions :
    1 - renseignez les bon id_category dans la table ps_category_product et si le moteur de base de données le permet, établissez une contrainte forte entre les colonnes des deux tables.
    2 - utilisez une jointure externe entre les deux tables (LEFT OUTER JOIN) pour que les enregistrements, même sans correspondance dans la table parente, puissent remonter.

    HTH.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Merci de m’avoir répondu

    C'est un moteur de recherche avec l'api google donc quand il y a une erreur mysql error n'affiche pas alors je place juste un echo 'Erreur.'; si il y a une erreur.

    Voila j'arrive a afficher le nom du produit ID du produit ID de la catégorie, mais mon problème est que je n'arrive pas a afficher le nom de la catégorie qui ce trouve dans la table ps_category_lang.

    Apres plusieurs recherche je pense que j’ai trouvé d’où le vien le probleme, mais je ne suis sur.

    Es ce que cela peut venir du fait que la table ps_product_lang et la table ps_category_lang en le même champ avec le nom ‘name’ mais, avec des donné différents.

    Si c’est ca j’ai tous essayer mais impossible de trouver la solution.


    Merci pour votre aides.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ca peut etre un "conflit" sur le champ name (si il existe dans plusieurs tables)
    WHERE name ...

    Ecrit :
    WHERE nom_de_la_bonne_table.name ...
    (WHERE ps_product_lang.name ... ?)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    C’est presque parfait, juste un petit problème

    Maintenant, je récupère le nom de la catégorie, mais pas celui du produit, mais en plus j’ai 3 résultats identiques

    Merci quand même

Discussions similaires

  1. Problème avec les jointures multiples
    Par kriskadespe dans le forum Langage SQL
    Réponses: 13
    Dernier message: 12/08/2011, 11h46
  2. Problème avec les jointures
    Par xoum89 dans le forum Langage SQL
    Réponses: 16
    Dernier message: 28/03/2011, 21h41
  3. Problème avec les jointures
    Par exqo77 dans le forum JDBC
    Réponses: 6
    Dernier message: 17/02/2010, 10h06
  4. [MySQL] Problème avec les jointure pour un menu
    Par Glocman dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/07/2006, 17h44
  5. Réponses: 2
    Dernier message: 21/07/2005, 12h05

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