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 ?
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';
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)