par
lowcraft » 22 mai 2006, 13:27
Merci.
Bon, le code envoyé retourne une erreur de syntaxe, mais après moultes experiences, j'ai enfin réussi à avoir ce que je voulais, j'explique plus en avant ce que je souhaitait, les tables, leurs définitions, ainsi que la méthode utilisé pour y parvenir, histoire que cela puisse aider d'autres personnes dans le même cas.
Pour commencer, j'ai une table que j'ai nommée texte, elle contient tous les textes des autres tables, avec le support multilangue (colonne lang), schéma des colonnes:
id, lang, texte
Puis une table rubriques:
id, code, nom, description
nom et description faisant référence à texte.id.
Si l'on fait une requête de type :
on se retrouve avec le resultat brut, maintenant, grace à cette requête, je récupère la valeur de texte en correspondance avec rubriques.nom et rubriques.description:
Code : Tout sélectionner
SELECT R.*, T.TEXTE AS NOM_TEXTE, T2.TEXTE AS DESCRIPTION_TEXTE FROM RUBRIQUES R, TEXTE T, TEXTE T2 WHERE R.NOM = T.ID AND T.LANG = "fr" AND R.DESCRIPTION = T2.ID AND T2.LANG = "fr" ;
Cette requête me retourne toutes les lignes avec la correspondance texte en francais.
Notez que si l'on rajoute une autre colonne dans la table rubriques faisant appel à texte, nous devons donc créer autant "d'alias" que nécessaire; T2.TEXTE, T3.TEXTE, T4.TEXTE etc...
Si des erreurs sont quand même parvenues à se faufiler dans cette explication, merci d'y contribuer, et si vous trouvez d'autres requêtes plus "élégantes" que celle ci, je suis preneur.
Encore une dernière chose, mon serveur de production est php5, mysql5, par contre, les serveurs dit clients ne supportes en générale qu'au plus la version 4, mais la plupart ont la 3.23.*, de ce faite, les UNION et autres fonctions ne sont pas possibles.
A vos bonnes contributions, salut.
Olivier
Merci.
Bon, le code envoyé retourne une erreur de syntaxe, mais après moultes experiences, j'ai enfin réussi à avoir ce que je voulais, j'explique plus en avant ce que je souhaitait, les tables, leurs définitions, ainsi que la méthode utilisé pour y parvenir, histoire que cela puisse aider d'autres personnes dans le même cas.
Pour commencer, j'ai une table que j'ai nommée texte, elle contient tous les textes des autres tables, avec le support multilangue (colonne lang), schéma des colonnes:
id, lang, texte
Puis une table rubriques:
id, code, nom, description
nom et description faisant référence à texte.id.
Si l'on fait une requête de type :
[code]SELECT * FROM RUBRIQUES[/code]
on se retrouve avec le resultat brut, maintenant, grace à cette requête, je récupère la valeur de texte en correspondance avec rubriques.nom et rubriques.description:
[code]SELECT R.*, T.TEXTE AS NOM_TEXTE, T2.TEXTE AS DESCRIPTION_TEXTE FROM RUBRIQUES R, TEXTE T, TEXTE T2 WHERE R.NOM = T.ID AND T.LANG = "fr" AND R.DESCRIPTION = T2.ID AND T2.LANG = "fr" ;[/code]
Cette requête me retourne toutes les lignes avec la correspondance texte en francais.
Notez que si l'on rajoute une autre colonne dans la table rubriques faisant appel à texte, nous devons donc créer autant "d'alias" que nécessaire; T2.TEXTE, T3.TEXTE, T4.TEXTE etc...
Si des erreurs sont quand même parvenues à se faufiler dans cette explication, merci d'y contribuer, et si vous trouvez d'autres requêtes plus "élégantes" que celle ci, je suis preneur.
Encore une dernière chose, mon serveur de production est php5, mysql5, par contre, les serveurs dit clients ne supportes en générale qu'au plus la version 4, mais la plupart ont la 3.23.*, de ce faite, les UNION et autres fonctions ne sont pas possibles.
A vos bonnes contributions, salut.
Olivier