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 :

Probleme sur tables jointes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut Probleme sur tables jointes
    Bonjour,

    J'ai un problème dans ma requete et je n'arrive pas à le localiser...
    Elle fonctionne parfaitement mais dès que je rajoute le complément de requete en rouge, elle plante.

    [EDIT]
    Après reflexion, je constate que j'ai oublié de lier la table societe_option en vert
    Le message d'erreur reste le même, seule la ligne d'erreur change...
    [/EDIT]

    Les tables concernées:

    Societe:
    id
    nom

    Societe_option:
    societe_id
    option_id

    option:
    id
    nom

    Le message d'erreur:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option ON option.id=societe_option.option_id INNER JOIN ville ON ville.id=soc' at line 7
    La requete:

    $sql = "
    SELECT societe.nom AS NOMSOC, societe.url AS URLSOC, societe.adresse1 AS AD1SOC,
    societe.adresse2 AS AD2SOC, societe.telephone AS TELSOC, societe.email AS EMASOC,
    societe.text_pub_fr AS PUFSOC, societe.text_pub_en AS PUESOC, societe.commentaires AS COMSOC,
    categorie.nom AS NOMCAT,ville.ville AS NOMVIL, ville.codepostal AS CODVIL, option.nom AS NOMOPT
    FROM societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id
    INNER JOIN categorie ON categorie.id = societe_categorie.categorie_id
    INNER JOIN option ON option.id=societe_option.option_id
    INNER JOIN societe_option ON societe.id=societe_option.societe_id
    INNER JOIN ville ON ville.id=societe.ville_id
    WHERE societe.vignette<>'no_vignette.png' AND categorie.nom='$categorie1' AND ville.ville LIKE '$multiville' ORDER BY societe.nom";
    Quelqu'un voit il où se situe le problème?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Petite question bete....:
    Je viens de comparer la requete de création de ma table.

    En voici une partie ci dessous.
    Ce sont les deux seules tables liées avec une relation n-n
    Je constate une différence en les éditant sous NOTEPAD
    le mot `option` est en bleu, si j'introduis un caractère dans 'option' => 'options' cela redevient en noir comme `categorie`
    Comme si option était une commande dans ce cas.
    Aurais-je choisi un mauvais nom pour ma table?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    -- -----------------------------------------------------
    -- Table `categorie`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `categorie` (
      `id` INT NOT NULL AUTO_INCREMENT ,
      `nom` VARCHAR(255) NOT NULL ,
      PRIMARY KEY (`id`) )
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;
    
    
    -- -----------------------------------------------------
    -- Table `option`
    -- -----------------------------------------------------
    CREATE  TABLE IF NOT EXISTS `option` (
      `id` INT NOT NULL AUTO_INCREMENT ,
      `nom` VARCHAR(255) NOT NULL ,
      PRIMARY KEY (`id`) )
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    C'était ça....

    J'ai effacé ma base pour renommer le champs 'option' en 'options' et ça passe...


    J'aimerais bien que quelqu'un me dise ce qu'il en pense avant que je tag résolu.

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

Discussions similaires

  1. Conditions sur tables jointes
    Par KpTn dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/10/2007, 10h17
  2. Probleme sur tables de grande taille
    Par PRODEVDZ dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/06/2006, 13h39
  3. [MySQL] requete sur table jointe
    Par winnie82 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/03/2006, 16h27
  4. [Historicité] Probleme sur Table Personne
    Par wolfy60 dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 25/02/2006, 08h08
  5. [firebird 1.5] Probleme sur tables de grande taille
    Par iguanevif dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2004, 13h33

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