begin process at 2012 05 31 14:47:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Requête Multitable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requête Multitable

mardi 10 mai 2005 à 08:44:34 | Requête Multitable

ripoux

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.
mardi 10 mai 2005 à 11:57:46 | Re : Requête Multitable

malalam

Administrateur CodeS-SourceS
Hello,

je n'ai pas compris ou etaient les questions et reponses dans differentes langues, perso.
Parce que en gros, tu dois demander :
va me chercher les reponses, la ou l'id de cette question est le meme que l'id_question dans ma table de reponses.
En fait tes tables langues contiennent quoi ?
Et ta table reponses (et questions) ?

mardi 10 mai 2005 à 12:56:12 | Re : Requête Multitable

ripoux

Hello,

Merci a toi de te soucier...
Je viens  de trouver la solution... rien de bien compliqué, mais j'ai de la peine a réfléchire avant midi moi lol !!

Pour ceux que ca intéresse voici mes 2 requêtes:

$reqquest = mysql_query("SELECT questlg_quest_id, questlg_libelle from t_quest_langue where questlg_codelg = '$langage'") or die ("erreur sql ".mysql_error());

/*Je tourne d'abord dans un boucle pour afficher chaques question que me retourne le select ci-dessus.... et ensuite:*/

$id = $question['questlg_quest_id'];

/*Je récupère l'id de la question....*/

$reqrep = mysql_query("SELECT RL.replg_rep_id, RL.replg_libelle from t_rep_langue RL, t_reponse R where RL.replg_codelg = '$langage' and R.rep_quest_id = '$id' and R.rep_id = RL.replg_rep_id") or die ("erreur sql ".mysql_error());

/*Et pour finir, je tourne dans un boucle pour afficher les réponses en rapport avec la question*/

En fait je n'utilise plus que 3 tables... je laisse tomber ma table T_QUESTION !

Merci encore...

A bientot.

MeK-ï


mardi 10 mai 2005 à 21:09:20 | Re : Requête Multitable

Anthomicro

Salut,

utilise un LEFT JOIN qui va te retourner la question plusieurs fois (autant de fois que de lignes retournées) et les réponses, le tout en une seule requête (le LEFT JOIN n'est pas forcément nécessaire, mais il te faut faire une jointure si tu as deux tables).

A +




    Cette discussion est classée dans : mysql, question, rep, langue, quest


    Répondre à ce message

    Sujets en rapport avec ce message

    question mysql !! aidez moi !!! [ par LoRdKiFlEx ] Comment fait on pour connaitre la valeur du dernier champs d'une table ou comment fait on pour connaitre le nombre de champs dans une table mysql question en mysql [ par Harpeur ] bonjour,j'ai une question, je suis entrain de faire un site en php avec une base de donné en mysql. dans ce site j'aimerai afficher une photos, l'adre ptite question sur mysql [ par hardelgylls ] bonjour les amis, j'ai une petite question à soumettre...est-ce que utiliser mysql / php pour des projets professionnels d'entreprise est-il gratuit.d Question requete mysql [ par zzzzzz ] salut j'ai plusieurs champs dont 1 champ nommé "id" qui est en auto increment et un autre champ nommé "titre" (et d'autres champs qui sont pas utiles MYSQL et ARRAY [ par mdog ] je repose ma question différement cela vient peut-etre de la façon de poser la question, ou bien c'est simplement que le post est trop bas maintenant simple question. [ par Zebra1928 ] slt tous le monde je veux simplement comprendre c koi la différence entre @mysql_num_rows et mysql_num_rowsaussi entre @mysql_connect($host,$user,$p Bouton submit [ par guguin ] J'ai un formulaire avec plusieurs boutons. Je voudrais savoir s'il est possible de passer en paramètre (méthode POST) le nom du bouton sur lequel on a question sur php/mysql [ par mohamedjayed ] j'ai  en face d'un grand nombre de definition et j'ai pas compris a qoui il sert en toute veriteparmi ces je peut citer par exemple-tableau de bord-ne suite question sur l'installation de news [ par mart44 ] J'oubliais  : voici les lignes concernées $nb = mysql_numrows($result); /* On recupère le nombre d'enregistrements */   while ($val = mysql_fetch_a Mysql + variable php question bête [ par Dyr3e ] j'aurai voulu savoir comment dois je ecrire la variable php dans la requete SQL suivanteINSERT INTO (variable php) values ('....)merci !


    Nos sponsors


    Sondage...

    CalendriCode

    Mai 2012
    LMMJVSD
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   

    Consulter la suite du CalendriCode

    A découvrir



     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 0,218 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales