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 :

Join SQL entre deux table (expects parameter..) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Join SQL entre deux table (expects parameter..)
    Bonjour,

    je me suis mis au JOIN pour mes requêtes SQL je pense avoir compris le fonctionnement, mais pourtant ca ne passe pas je me tape une erreur :

    (mysql_fetch_array() expects parameter 1 to be resource, boolean)

    Voici ma requête une fois construite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT locales_quest.entry AS locentry, locales_quest.Title_loc2, quest_template.entry AS questentry, quest_template.MinLevel, quest_template.QuestLevel 
    FROM locales_quest 
    JOIN quest_template 
    ON `questentry`=`locentry`
    WHERE `locales_quest.Title_loc2`
    LIKE '%test%'
    ORDER BY `locales_quest.Title_loc2` 
    ASC LIMIT 100

    En gros j'ai une TABLE (quest_template) qui contient le TITRE (Title) des quêtes en anglais, et une TABLE (locales_quest) qui contient le TITRE (Title_loc2) en français.

    Donc quand je recherche un titre via un mot français, j'aimerais que les résultats puissent afficher du contenu supplémentaire tiré dans la table anglaise (qui est celle qui contient toutes les infos) contrairement à la table française qui ne contient que la traduction.

    Merci d 'avance pour votre aide

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Ta requête semble correcte, au détail près qu'il serait mieux de préciser de quelles tables viennent les colonnes de la condition de jointure pour éviter au SGBD de le chercher et à l'avenir quand tu auras de multiples jointures pour retrouver facilement quelle table est jointe à quelle autre.

    Le message d'erreur que tu reçoit est un message PHP, pas MySQL !
    C'est donc ton code PHP qui est en cause et comme tu ne le donnes pas...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Hello !

    effectivement j'aurais du le faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    mysql_select_db($search_display_mods['selectdb']);
    $result_search=mysql_query($search_SQL_query_final); //requête construite plus haut
     
    while ($table_search=mysql_fetch_array($result_search)) {	
     
    $entry_search=$table_search['entry'];
    $Title_search=htmlentities($table_search['Title_loc2']);
    $MinLevel_search=$table_search['MinLevel'];
    $QuestLevel_search=$table_search['QuestLevel'];
     
     
    }//finwhile SQL



    Ma requête une fois construite par mes scripts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT `locales_quest.entry`, `locales_quest.Title_loc2`, `quest_template.entry`, `quest_template.MinLevel`, `quest_template.QuestLevel` 
    FROM `locales_quest` 
    JOIN `quest_template` 
    ON `quest_template.entry`=`locales_quest.entry`
    WHERE `locales_quest.Title_loc2`
    LIKE '%test%'
    ORDER BY `locales_quest.Title_loc2` 
    ASC LIMIT 100

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Tu devrais capturer les erreurs MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result_search=mysql_query($search_SQL_query_final) or die(mysql_error());

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    effectivement quel con, je le fait d'habitude !

    par contre je ne comprend pas je me tape un

    Unknown column 'locales_quest.entry' in 'field list'

    alors que j'ai bien vérifié les noms, et la colonne existe bien.
    Je vais continuer à chercher en attendant.

    EDIT : j'ai essayé en modifiant les champs, il n'en reconnait aucuns :s

    comment est-ce possible ? même avec une requête simple sans join, il a l'air de ne pas reconnaitre les champs de type "table.colonne"

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Retire ces saloperies d'apostrophes inversées qui ne servent à rien dans ton cas... et qui ne devraient jamais être nécessaires avec des BDD bien faites !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci !!

    c'était bien ca ! je pensais qu'il fallait les mettre a chaque nom de table ou colonnes par mesure de sécurité m'enfin bon ca marche c'est cool encore merci !

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Ce n'est nécessaire que lorsqu'une table ou colonne est mal nommée avec des caractères diacritiques, spéciaux, génériques ou en plusieurs mots, ce qu'il vaut mieux bien sûr éviter.

    ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Ok ce qui n'est pas mon cas de toute façon, oui j'ai tag le post en résolu ca fonctionne

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

Discussions similaires

  1. Requête SQL entre deux tables
    Par DeWaRs dans le forum Langage SQL
    Réponses: 7
    Dernier message: 05/11/2012, 14h31
  2. Inner Join entre deux tables SQL avec VB6
    Par Astragale dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2009, 19h35
  3. Requête sql entre deux tables
    Par jojo86 dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/02/2008, 19h19
  4. Requette SQL entre deux tables !
    Par younes371 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/01/2007, 15h57
  5. [debutant]ms sql serveur delete entre deux tables
    Par ChristopheOce dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/06/2006, 16h36

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