Boucle et jointure

Re bonsoir,

Je voudrais utiliser la fonctionnalité de la 1.9 qui permet de traiter
d'autres tables SQL, et ainsi supprimer mon code PHP et beneficier du
cache.

J'ai une table :
* article_ext avec
      - id_article qui fait la jointure avec la table SPIP articles
      - ...
      - id_label, index vers la table:
* label
      - id_label
      - nom

Le but : afficher label.nom dans une boucle (ARTICLES)
<BOUCLE_art(ARTICLES)>
  <BOUCLE_label(MON_LABEL)>#ID_LABEL</BOUCLE_label>
</BOUCLE_art>
m'affiche bien touts les identifiants, pour chacun des articles.
Par contre
  <BOUCLE_label(ARTICLES MON_LABEL)>#ID_LABEL</BOUCLE_label>
Fait une erreur Table SQL « MON_LABEL » inconnue, _label.
donc difficile de faire une jointure.

Vous auriez des exemples concrets pour l'utilisation de tables externes et
de jointures ?

Thierry a écrit :

Re bonsoir,

Je voudrais utiliser la fonctionnalité de la 1.9 qui permet de traiter d'autres tables SQL, et ainsi supprimer mon code PHP et beneficier du cache.

J'ai une table :
* article_ext avec - id_article qui fait la jointure avec la table SPIP articles
      - ...
      - id_label, index vers la table:
* label
      - id_label
      - nom

Le but : afficher label.nom dans une boucle (ARTICLES)
<BOUCLE_art(ARTICLES)>
  <BOUCLE_label(MON_LABEL)>#ID_LABEL</BOUCLE_label>
</BOUCLE_art>
m'affiche bien touts les identifiants, pour chacun des articles.
Par contre <BOUCLE_label(ARTICLES MON_LABEL)>#ID_LABEL</BOUCLE_label>
Fait une erreur Table SQL « MON_LABEL » inconnue, _label.
donc difficile de faire une jointure.

Vous auriez des exemples concrets pour l'utilisation de tables externes et de jointures ?

Si j'ai bien compris ta structure, ca serait plutot :
<BOUCLE_label(ARTICLES article_ext label)>#ID_LABEL</BOUCLE_label>

(voir les explications sur la liste dev, il faut donner le nom réel de la table pour les jointures)

Mais tu dois pouvoir faire :
<BOUCLE_label(MON_LABEL){id_article}>#ID_LABEL</BOUCLE_label>

en declarant les bonnes $tables_jointures...

Heu, pour l'instant je galere un peu, mais ca doit etre du genre :
$tables_jointures['label']= 'article_ext';
$tables_jointures['label']= 'articles';
$tables_jointures['spip_articles']= 'article_ext';

@++

On Wed, 2007-03-14 at 22:42 +0000, Thierry wrote:

Par contre
  <BOUCLE_label(ARTICLES MON_LABEL)>#ID_LABEL</BOUCLE_label>
Fait une erreur Table SQL « MON_LABEL » inconnue, _label.

(t'as mis label au debut et mon_label après, donc à valider ...)

De ce que je comprend de ton explication, ça serait plutot
(ARTICLES article_ext label)
=> jointure spip_articles+article_ext sur id_article
puis sur article_ext+label sur id_label

mais je suis pas certain que ça marche puisqu'il faut vers la
jointure de colonne vers clé je crois. Il faut donc peut etre
ecrire (ARTICLES_EXT article label)