jointure de table

Bonjour,
je crée un plugin avec spip2. Je souhaite faire la jointure entre deux tables
table 1: id_fiche / id_ville
table 2: id_ville / nom_ville

je définis lors de la création de ces tables des jointures « id_ville » => « id_ville » pour la première et la seconde
d’autre part, je définis:
$interface[‹ tables_jointures ›][‹ spip_table1 ›][] = ‹ table2 ›;
$interface[‹ tables_jointures ›][‹ spip_table2 ›][] = ‹ table1 ›;

je pensais qu’alors je pouvais faire:
<BOUCLE_a (TABLE1) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
mais cela ne fonctionne pas

si je mets <BOUCLE_a (table1 table2) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
cela ne fonctionne pas non plus.

Comment réaliser une jointure de tables? car j’ai pour une fiche des id_ville et id_lycee qui doivent appeler des nom_ville et nom_lycee et je ne vais pas creer une boucle à chaque fois pour appeler le nom!
merci d’avance

eric ouvrard <eric.ouvrard@gmail.com> wrote:

Bonjour,
je crée un plugin avec spip2. Je souhaite faire la jointure entre deux
tables
table 1: id_fiche / id_ville
table 2: id_ville / nom_ville

je définis lors de la création de ces tables des jointures "id_ville" =>
"id_ville" pour la première et la seconde
d'autre part, je définis:
$interface['tables_jointures']['spip_table1'] = 'table2';
$interface['tables_jointures']['spip_table2'] = 'table1';

je pensais qu'alors je pouvais faire:
<BOUCLE_a (TABLE1) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
mais cela ne fonctionne pas

si je mets <BOUCLE_a (table1 table2) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
cela ne fonctionne pas non plus.

Si tes tables sont préfixées avec spip_xxxx comme nom il me semble qu'il
faut respecter les majuscules pour le nom des tables (au moins de la
première)

BOUCLE_a (TABLE1 TABLE2) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>

voir :

<citation>Lorsqu'une table, même externe a le même préfixe qu'une table
SPIP, alors il est possible de la référencer sans le préfixe à
l'intérieur d'une boucle. On écrira alors son nom en majuscules, sans le
préfixe : c'est son nom « logique » tandis que le nom en minuscule et
avec le préfixe, c'est le nom « physique ».</citation>

la déclaration de tables_jointures n'est pas obligatoire pour faire des
jointures, seulement pour accéder à des données d'une table, come tu
voulais le faire.
le carnet spip sur ces sujets
http://www.spip-contrib.net/Carnet-Multitables-Multibases

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Bonjour

c'est expliqué et je crois transférable en spip 2

Dominique a écrit :

eric ouvrard <eric.ouvrard@gmail.com> wrote:

Bonjour,
je crée un plugin avec spip2. Je souhaite faire la jointure entre deux
tables
table 1: id_fiche / id_ville
table 2: id_ville / nom_ville

je définis lors de la création de ces tables des jointures "id_ville" =>
"id_ville" pour la première et la seconde
d'autre part, je définis:
$interface['tables_jointures']['spip_table1'] = 'table2';
$interface['tables_jointures']['spip_table2'] = 'table1';

je pensais qu'alors je pouvais faire:
<BOUCLE_a (TABLE1) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
mais cela ne fonctionne pas

si je mets <BOUCLE_a (table1 table2) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>
cela ne fonctionne pas non plus.
    
Si tes tables sont préfixées avec spip_xxxx comme nom il me semble qu'il
faut respecter les majuscules pour le nom des tables (au moins de la
première)

BOUCLE_a (TABLE1 TABLE2) {id_fiche=3}> #NOM_VILLE </BOUCLE_a>

voir :
Accés SPIP aux tables non-SPIP et jointures - SPIP-Contrib

<citation>Lorsqu'une table, même externe a le même préfixe qu'une table
SPIP, alors il est possible de la référencer sans le préfixe à
l'intérieur d'une boucle. On écrira alors son nom en majuscules, sans le
préfixe : c'est son nom « logique » tandis que le nom en minuscule et
avec le préfixe, c'est le nom « physique ».</citation>

la déclaration de tables_jointures n'est pas obligatoire pour faire des
jointures, seulement pour accéder à des données d'une table, come tu
voulais le faire.
le carnet spip sur ces sujets
Carnet Multitables & Multibases