boucle sur #SET (ne stocke que le dernier résultat d'une boucle)

Bonjour,

Je fais une boucle sur une table externe d’après un critère dans l’url (?test=xxx)

La boucle me renvoie une liste, mais #SET ne stocke que la dernière #ID de la liste…

<BOUCLE_test(MA_TABLE){nom==#ENV{test}}>
#SET{recherche_nom,#ID}
[(#NOM)
]
<BOUCLE_test>

#GET{recherche_nom}

Y-a-t-il moyen de « boucler » sur #SET pour avoir un résultat de #GET du type : 1,2,56,375 etc.

Merci!


Webmaster Wdirect

webmaster@wdirect.fr

webmaster wdirect a écrit :

Bonjour,

Je fais une boucle sur une table externe d'après un critère dans l'url (?test=xxx)

La boucle me renvoie une liste, mais #SET ne stocke que la dernière #ID de la liste...

<BOUCLE_test(MA_TABLE){nom==#ENV{test}}>
#SET{recherche_nom,#ID}
[(#NOM)<br />]
<BOUCLE_test>
#GET{recherche_nom}

Y-a-t-il moyen de "boucler" sur #SET pour avoir un résultat de #GET du type : 1,2,56,375 etc.

Utiliser un tableau
#SET{recherche_nom,#ARRAY}
#SET{recherche_nom_virg}
<BOUCLE_test(MA_TABLE){nom==#ENV{test}}>
[(#SET{recherche_nom,[(#GET{recherche_nom}|push{#ID})]})]

[(#SET{recherche_nom_virg,[(#GET{recherche_nom_virg}|concat{,#ID})]})]
[(#NOM)<br />]
<BOUCLE_test>

#GET{recherche_nom} est alors un tableau d'éléments (utilisable par {critere IN #GET{recherche_nom}} )

[(#GET{recherche_nom_virg}|substr{1})] est lui une chaine 1,2,3,4... (il faut enlever la première virgule)

(push est peut être juste en spip 2, je ne sais plus)
--
MM.

Parfait, en fait un petit ajout d'apostrophes et tout fonctionne!

        [(#SET{recherche_nom,[(#GET{recherche_nom}|concat{',',#ID})]})]

(le push étant en spip 2)

MERCI!

Le 25 sept. 08 à 16:40, Matthieu Marcillaud a écrit :

webmaster wdirect a écrit :

Bonjour,
Je fais une boucle sur une table externe d'après un critère dans l'url (?test=xxx)
La boucle me renvoie une liste, mais #SET ne stocke que la dernière #ID de la liste...
<BOUCLE_test(MA_TABLE){nom==#ENV{test}}>
#SET{recherche_nom,#ID}
[(#NOM)<br />]
<BOUCLE_test>
#GET{recherche_nom}
Y-a-t-il moyen de "boucler" sur #SET pour avoir un résultat de #GET du type : 1,2,56,375 etc.

Utiliser un tableau
#SET{recherche_nom,#ARRAY}
#SET{recherche_nom_virg}
<BOUCLE_test(MA_TABLE){nom==#ENV{test}}>
[(#SET{recherche_nom,[(#GET{recherche_nom}|push{#ID})]})]

[(#SET{recherche_nom_virg,[(#GET{recherche_nom_virg}|concat{,#ID})]})]
[(#NOM)<br />]
<BOUCLE_test>

#GET{recherche_nom} est alors un tableau d'éléments (utilisable par {critere IN #GET{recherche_nom}} )

[(#GET{recherche_nom_virg}|substr{1})] est lui une chaine 1,2,3,4... (il faut enlever la première virgule)

(push est peut être juste en spip 2, je ne sais plus)
--
MM.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip