J'ai 2 tables
Une Table "Pnj"
Avec comme champs :
... = le reste est inutile pour la question"id","zone",....
Une Table "Pnj_nom"
Avec comme champs :
Un "Pnj" peut avoir un "nom" différent par langue"id_pnj","lng","nom"
dans la table "Pnj" on a :
dans la table "Pnj_nom" on peut avoir des données de ce type la :"1", "3"
En fonction de la langue de l'utilisateur J'affiche le nom dans sa langue, Si le nom n'est pas renseigner j'affiche le nom "fr" par defaut."1", "fr", "Toto"
"1", "en", "Titi"
J'ai découvert ici les joies de GROUP_CONCAT et des jointures pour m'eviter certaines boucles en php.
Donc j'ai fait cette requete :
Qui me permet d'avoir dans le résultat :SELECT d.id, GROUP_CONCAT(e.nom) as nom, d.zone FROM Pnj d INNER JOIN Pnj_lng e ON d.id = e.id_pnj WHERE d.zone='3' GROUP BY d.nom ORDER BY e.nom
nom = Titi, Toto
Premiere question est-ce que ma requete est correcte ? (Est-ce que je complique les choses pour rien, vu que je debute dans l'utilisation de GROUP_CONCAT)
Ai-je une solution pour que la concaténation soit ordonné avec en premier la langue de l'utilisateur ?
Partager