Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 22h50   #1
Invité de passage
 
Inscription : juin 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 19
Points : 2
Points : 2
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 :
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
noyuw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 10h30   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
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...
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 15h31   #3
Invité de passage
 
Inscription : juin 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 19
Points : 2
Points : 2
Hello !

effectivement j'aurais du le faire :


Code :
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 :
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
noyuw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 15h41   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Tu devrais capturer les erreurs MySQL :
Code :
$result_search=mysql_query($search_SQL_query_final) or die(mysql_error());
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 15h53   #5
Invité de passage
 
Inscription : juin 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 19
Points : 2
Points : 2
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"
noyuw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 16h15   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
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 !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 17h18   #7
Invité de passage
 
Inscription : juin 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 19
Points : 2
Points : 2
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 !
noyuw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 17h21   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
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.

?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 18h02   #9
Invité de passage
 
Inscription : juin 2010
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 19
Points : 2
Points : 2
Ok ce qui n'est pas mon cas de toute façon, oui j'ai tag le post en résolu ca fonctionne
noyuw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h05.


 
 
 
 
Partenaires

Hébergement Web