De boucle en boucle

---------- Forwarded message ----------
From: Swann Legras <cygnepgm@gmail.com>
Date: 16 août 2007 11:45
Subject: De boucle en boucle
To: spip-request <spip-request@rezo.net>

Bonjour tout le monde…

En dévellopant sous SPIP je me suis retrouvé dans une situation plutôt délicate; je vous explique.

J’ai une table ( apelée X pour l’exemple ) dont un des champ ( que l’on appelle nom_de_la_table ) contient le nom d’une autre table de la base de données ( jusque là,rien de trop compliqué me diriez vous )

Maintenant c’est sur la partie publique que ca se corse, en effet j’aimerai faire une boucle sur nom_de_la_table au sein de la boucle X.Optimiste que je suis je redige le code suivant :

<BOUCLE (X)>

<BOUCLE (#NOM_DE_LA_TABLE) >

Je ne vous fais pas l’affront de vous dire que cela ne marche pas :smiley: ( Spip est magique mais pas jusque la ).Donc notre gentil ecureuil me revois un bô message d’erreur comme quoi #NOM_DE_LA_TABLE n’est pas une table ( et oui il a cherché la table #NOM_DE_LA_TABLE et non le résultat de #NOM_DE_LA_TABLE )

Je suis ouvert à toutes propositions de votre part…

Swann Legras a écrit :

---------- Forwarded message ----------
From: *Swann Legras* <cygnepgm@gmail.com <mailto:cygnepgm@gmail.com>>
Date: 16 août 2007 11:45
Subject: De boucle en boucle
To: spip-request <spip-request@rezo.net <mailto:spip-request@rezo.net>>

Bonjour tout le monde...

En dévellopant sous SPIP je me suis retrouvé dans une situation plutôt délicate; je vous explique.

J'ai une table ( apelée X pour l'exemple ) dont un des champ ( que l'on appelle nom_de_la_table ) contient le nom d'une autre table de la base de données ( jusque là,rien de trop compliqué me diriez vous )

Maintenant c'est sur la partie publique que ca se corse, en effet j'aimerai faire une boucle sur nom_de_la_table au sein de la boucle X.Optimiste que je suis je redige le code suivant :

<BOUCLE (X)>

<BOUCLE (#NOM_DE_LA_TABLE) >

</BOUCLE>

</BOUCLE>

Je ne vous fais pas l'affront de vous dire que cela ne marche pas :smiley: ( Spip est magique mais pas jusque la ).

si, si et bien au dela encore....

donne un exemple concret qu'on puisse te donner la bonne syntaxe

c'est sans doute :
<BOUCLE_A (X)>

  <BOUCLE_B (spip_nom_de_la_table){id_x} >

   </BOUCLE_B>

</BOUCLE_A>

mais tu peux aussi faire une jointure :
<BOUCLE_A (X spip_nom_de_la_table)>
</BOUCLE_A>

si les indexes sont bien declarés dans mysql

Donc notre gentil ecureuil me

revois un bô message d'erreur comme quoi #NOM_DE_LA_TABLE n'est pas une table ( et oui il a cherché la table #NOM_DE_LA_TABLE et non le résultat de #NOM_DE_LA_TABLE )

donc, en minuscule et avec le prefixe (s'il y en a un), ca devrait marcher.

@++

Swann Legras a écrit :

Je me suis peut-être mal exprimé ou alors j'ai mal compris ta reponse :
j'ai une table X qui reférence d'autre table, c'est a dire qu'il y a un champ de la table qui contient le nom d'autre table, par exemple spip_articles, spip_auteurs etc...

et moi sur un squellette je veut faire automatiquement des boucle sur les table qui sont référencées dans la table X

ah, ok, j'avais pas compris.
donc, non, pas possible directement, le nom de la table ne peut pas etre calculé (necessaire à la compilation).

par contre, tu dois pouvoir faire :
<BOUCLE_A(X)>
<INCLURE{fond=bloc_#LE_CHAMP}>
</BOUCLE_A>

et faire des bloc_article.html, bloc_rubrique.html ...

@++