Bonjour,
J'ai un soucis au niveau des requêtes multitable en MySQL...
Voila ce que j'aimerais faire:
J'ai une table de "question" et un table de "réponse" pour chacune de ces 2 tables, j'ai 1 table associative pour la traduction en 3 langue. J'aimerais afficher dans une page, chaque question entrée avec a chaque fois toute les réponses associé aux questions.
Mon shéma de tables:
T_QUESTION (1)----------------(n) T_QUEST_LANGUE
(1)
|
|
|
(n)
T_REPONSE (1)-----------------(n) T_REP_LANGUE
J'ai besoin des champs suivants:
T_QUEST_LANGUE:
- questlg_libelle (champ qui contient le texte de la question avec la clause where questlg_codelg = '$LangueChoisieParLutilisateur')
T_REP_LANGUE
- replg_libelle (champ qui contient le texte des réponses avec la clause where replg_codelg = '$LangueChoisieParLutilisateur')
Mais pour réussir a accouplé les réponses avec les questions il me faut aussi:
T_QUESTION
- quest_id
T_REPONSE:
- rep_quest_id (fk qui relie T_QUESTION à T_REPONSE)
exemple de ce que j'ai fais:
$reqquest = mysql_query("SELECT questlg_libelle from t_quest_langue where questlg_codelg = '$langage'") or die ("erreur sql ".mysql_error());
$reqrep = mysql_query("SELECT replg_libelle from t_rep_langue where replg_codelg = '$langage' ") or die ("erreur sql ".mysql_error());
La, logiquement il m'affiche les questions et ensuite toutes les réponses qu'il y a dans ma bases... même si elle ne correspondent pas a la question.
Il me faudrait qqch dans ce style:
$reqquest = mysql_query("SELECT QLG.questlg_libelle, Q.quest_id from t_quest_langue QLG, t_question Q where questlg_codelg = '$langage'") or die ("erreur sql ".mysql_error());
$questionid = $reqquest['quest_id']
$reqrep = mysql_query("SELECT RLG.replg_libelle, R.rep_quest_id from t_rep_langue RLG, t_reponse R where replg_codelg = '$langage' and rep_quest_id = '$questionid '") or die ("erreur sql ".mysql_error());
Alors si quelqu'un pourrais m'aider ou me dire si mon explication n'est pas assez claire...
En tout cas je suis certain qu'il faut une requête multitable pour réaliser ceci... mais je n'ai ni trouvé dans mes bouquins ni sur internet une explication assez claire pour moi.