#ENV

Bonjour,
Je sais récupérer une variable avec #ENV pour ajouter un critère dans une boucle.
Mais peut-on transformer une variable en balise pour afficher un champ ?
Merci d'avance.
BS

Bernard Strainchamps a écrit :

Bonjour,
Je sais récupérer une variable avec #ENV pour ajouter un critère dans une boucle.
Mais peut-on transformer une variable en balise pour afficher un champ ?
Merci d'avance.

si je comprends bien la question, la reponse est oui : [(#ENV{#ENV{nomduchamp}})]

Bernard Strainchamps a écrit :
  

Bonjour,
Je sais récupérer une variable avec #ENV pour ajouter un critère dans une boucle.
Mais peut-on transformer une variable en balise pour afficher un champ ?
Merci d'avance.
    

Stephane a écrit :
si je comprends bien la question, la reponse est oui : [(#ENV{#ENV{nomduchamp}})]
  

j''essaie ça
<BOUCLE_anim(ADBDP){annee=#ENV{test}}{par num #ENV{test2}}{inverse}>
<table>
<tr>
<td class="td_champdef">#ANNEE
</td>
<td class="td_valeurdef">[(#ENV{#ENV{test3}})]
</td>
</tr>
</table>
</BOUCLE_anim>

et dans l'url /spip.php?page=test15&test=2006&test2=statsb14z&stats3=#STATSB14Z
mais ça ne donne rien.
Comment puis-je procéder ?
Merci d'avance

Bernard Strainchamps a écrit :

Bernard Strainchamps a écrit :

Bonjour,
Je sais récupérer une variable avec #ENV pour ajouter un critère dans une boucle.
Mais peut-on transformer une variable en balise pour afficher un champ ?
Merci d'avance.
    

Stephane a écrit :
si je comprends bien la question, la reponse est oui : [(#ENV{#ENV{nomduchamp}})]
  

j''essaie ça
<BOUCLE_anim(ADBDP){annee=#ENV{test}}{par num #ENV{test2}}{inverse}>

avec le num je crois que ca ne marche pas

<table>
<tr>
<td class="td_champdef">#ANNEE
</td>
<td class="td_valeurdef">[(#ENV{#ENV{test3}})]
</td>
</tr>
</table>
</BOUCLE_anim>

et dans l'url /spip.php?page=test15&test=2006&test2=statsb14z&stats3=#STATSB14Z

plutot :
spip.php?page=test15&test=2006&test2=statsb14z&test3=statsb14z
dans ce cas

mais ça ne donne rien.

heu, mais encore ?
pas de lignes ou pas de champs ?
adbdp est bien déclarée dans Spip ?

Stephane a écrit :

Bernard Strainchamps a écrit :
  

Bernard Strainchamps a écrit :

Bonjour,
Je sais récupérer une variable avec #ENV pour ajouter un critère dans une boucle.
Mais peut-on transformer une variable en balise pour afficher un champ ?
Merci d'avance.
    

Stephane a écrit :
si je comprends bien la question, la reponse est oui : [(#ENV{#ENV{nomduchamp}})]
  

j''essaie ça
<BOUCLE_anim(ADBDP){annee=#ENV{test}}{par num #ENV{test2}}{inverse}>
    
avec le num je crois que ca ne marche pas

<table>
<tr>
<td class="td_champdef">#ANNEE
</td>
<td class="td_valeurdef">[(#ENV{#ENV{test3}})]
</td>
</tr>
</table>
</BOUCLE_anim>

et dans l'url /spip.php?page=test15&test=2006&test2=statsb14z&stats3=#STATSB14Z
    
plutot :
spip.php?page=test15&test=2006&test2=statsb14z&test3=statsb14z
dans ce cas

mais ça ne donne rien.
    
heu, mais encore ?
pas de lignes ou pas de champs ?
adbdp est bien déclarée dans Spip ?

_______________________________________________
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
FAQ : FAQ webmestre - SPIP

Dans ce cas précis se serait bien de connaitre la configuration de la table, car num est il un champ table, bref on ne comprend pas grand chose là dedans!!

BB

Je recommence.

La boucle ci-dessous affiche les données triées sans problème
quand j'utilise /spip.php?page=test14&livre=2006

<B_livre>
<BOUCLE_livre(ADBDP){annee=#ENV{livre}}{par num statsd13x}{inverse}>
<table>
<tr>
<td>[(#BDP|majuscules)] #ANNEE
</td>
<td>#STATSD13X
</td>
</tr>
</table>
</BOUCLE_livre>
</B_livre>

Mais comment passer en variable ce #STATSD13X qui peut être aussi #STATSC43T ou encore #STATSD13X...
Merci d'avance.
BS qui a dû mal à formuler

Le 30 avr. 08 à 06:52, Bernard Strainchamps a écrit :

Je recommence.

La boucle ci-dessous affiche les données triées sans problème
quand j'utilise /spip.php?page=test14&livre=2006

<B_livre>
<BOUCLE_livre(ADBDP){annee=#ENV{livre}}{par num statsd13x}{inverse}>
<table>
<tr>
<td>[(#BDP|majuscules)] #ANNEE
</td>
<td>#STATSD13X
</td>
</tr>
</table>
</BOUCLE_livre>
</B_livre>

Mais comment passer en variable ce #STATSD13X qui peut être aussi
#STATSC43T ou encore #STATSD13X...
Merci d'avance.
BS qui a dû mal à formuler

Bonjour, j'espère avoir compris ta question, et si c'est le cas, j'essaierais bien ça (pas testé) :

#SET{mavar, #STATSD13X}

et puis, ensuite, dans mon lien

http:// ..... spip.php?page=mapage&amp;[(#GET{mavar})]&amp;autrevar, etc.

Marc

Marc VALLETEAU de MOULLIAC a écrit :

Le 30 avr. 08 à 06:52, Bernard Strainchamps a écrit :

Je recommence.

La boucle ci-dessous affiche les données triées sans problème
quand j'utilise /spip.php?page=test14&livre=2006

<B_livre>
<BOUCLE_livre(ADBDP){annee=#ENV{livre}}{par num statsd13x}{inverse}>
<table>
<tr>
<td>[(#BDP|majuscules)] #ANNEE
</td>
<td>#STATSD13X
</td>
</tr>
</table>
</BOUCLE_livre>
</B_livre>

Mais comment passer en variable ce #STATSD13X qui peut être aussi
#STATSC43T ou encore #STATSD13X...
Merci d'avance.
BS qui a dû mal à formuler
    
Bonjour, j'espère avoir compris ta question, et si c'est le cas, j'essaierais bien ça (pas testé) :

#SET{mavar, #STATSD13X}

et puis, ensuite, dans mon lien

http:// ..... spip.php?page=mapage&amp;[(#GET{mavar})]&amp;autrevar, etc.

Marc

???

______________________________________________
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
FAQ : FAQ webmestre - SPIP

Je ne saisis vraiment pas ta question! <pourquoi par num, statetc!
As tu un champ spécifique dans la table? sinon c'est même pas la peine d'essayer
Que te retourne le mode debug et que trouves tu dans ce #ENV
Je te l'ai dis hier l'idéal serait d'avoir ta structure de table, sinon pas bien possible de connaitre le fond et les raisons de ta boucle..
Dis nous en plus, on t'aidera davantage :slight_smile:

BB

Marc VALLETEAU de MOULLIAC a écrit :

Le 30 avr. 08 à 06:52, Bernard Strainchamps a écrit :

Je recommence.

La boucle ci-dessous affiche les données triées sans problème
quand j'utilise /spip.php?page=test14&livre=2006

<B_livre>
<BOUCLE_livre(ADBDP){annee=#ENV{livre}}{par num statsd13x}{inverse}>
<table>
<tr>
<td>[(#BDP|majuscules)] #ANNEE
</td>
<td>#STATSD13X
</td>
</tr>
</table>
</BOUCLE_livre>
</B_livre>

Mais comment passer en variable ce #STATSD13X qui peut être aussi
#STATSC43T ou encore #STATSD13X...
Merci d'avance.
BS qui a dû mal à formuler

Bonjour, j'espère avoir compris ta question, et si c'est le cas, j'essaierais bien ça (pas testé) :

#SET{mavar, #STATSD13X}

et puis, ensuite, dans mon lien

http:// ..... spip.php?page=mapage&amp;[(#GET{mavar})]&amp;autrevar, etc.

Marc

monnaieancienne a écrit :

Je ne saisis vraiment pas ta question! <pourquoi par num, statetc!
As tu un champ spécifique dans la table? sinon c'est même pas la peine d'essayer
Que te retourne le mode debug et que trouves tu dans ce #ENV
Je te l'ai dis hier l'idéal serait d'avoir ta structure de table, sinon pas bien possible de connaitre le fond et les raisons de ta boucle..
Dis nous en plus, on t'aidera davantage :slight_smile:

BB

Ma boucle fonctionne très bien avec {par num statsxxx}
http://www.adbdp.asso.fr/spip.php?page=stats
testez le comparateur à droite de l'écran...

Ce que je cherche à faire, c'est créé un formulaire qui permettrait de récupérer deux variables
et de transformer une première variable en critère dans la boucle

-> {annee=#ENV{livre}} ça marche très bien

et la deuxième variable en critère dans la boucle et en balise pour afficher les données.

et la ça ne marche pas.

Pour info,
Le champ "annee" est toujours présent dans la boucle. C'est la valeur qui est différente.
Par contre le deuxième champ n'est jamais le même : c'est statsXX, ou statsXY etc.
A vrai dire, je me moque du tri. Je voudrais surtout savoir comment transformer cette variable
en champ...

Ci-dessous, la boucle avec la récupération de la variable année qui fonctionne sur le site.

<B_livre>
<BOUCLE_livre(ADBDP){annee=#ENV{annee}}{par num statsd13x}{inverse}>
<table>
<tr>
<td>[(#BDP|majuscules)] #ANNEE
</td>
<td>#STATSD13X
</td>
</tr>
</table>
</BOUCLE_livre>
</B_livre>

Bernard Strainchamps a écrit :

Ma boucle fonctionne très bien avec {par num statsxxx}

as tu lu ma reponse ?
avec num, pas de tri dynamique.
mais tu paux faire {par #ENV{nomduchamp}}

http://www.adbdp.asso.fr/spip.php?page=stats
testez le comparateur à droite de l'écran...

Ce que je cherche à faire, c'est créé un formulaire qui permettrait de récupérer deux variables
et de transformer une première variable en critère dans la boucle

-> {annee=#ENV{livre}} ça marche très bien

et la deuxième variable en critère dans la boucle et en balise pour afficher les données.

et la ça ne marche pas.

je redis :

spip.php?page=test15&test=2006&test2=statsb14z&test3=statsb14z

avec :
<BOUCLE_anim(ADBDP){annee=#ENV{test}}{par #ENV{test2}}{inverse}>
<table>
<tr>
<td class="td_champdef">#ANNEE
</td>
<td class="td_valeurdef">[(#ENV{#ENV{test3}})]
</td>
</tr>
</table>
</BOUCLE_anim>

ca devrait marcher
@++

je redis :

spip.php?page=test15&test=2006&test2=statsb14z

J'avais bien lu et testé.. mais sans succès. J'en suis désolé.

J'ai un problème avec [(#ENV{#ENV{test2}})] il ne me transforme pas statsb14z en #STATSB14Z pour afficher les données de ce champ.

Bernard Strainchamps a écrit :

je redis :

spip.php?page=test15&test=2006&test2=statsb14z

J'avais bien lu et testé.. mais sans succès. J'en suis désolé.

J'ai un problème avec [(#ENV{#ENV{test2}})] il ne me transforme pas statsb14z en #STATSB14Z pour afficher les données de ce champ.

Alors change le nom du champ juste pour essai. Je crois et je reste persuadé que ton #ENV{#ENV{2}}
ne peut rien retourner car il va chercher le premier env qui n'existe pas!!! (c'est le même prob que du php dans une boucle spip!!!)
Je redis:

Envois ta structure de ta table, puis à partir de ça on fera un #env compatible... D'autre part sans vraiment savoir, la solution proposée devrait fonctionner!!!

J'ai bien sûr essayer de changer de champ...
Ma boucle marche.
Demain, j'essaierai sur une table spip... pour voir.
Ma base est énorme et structuré très simplement.
Ci dessous, un extrait de la table en question. Elle a 600 champs.
Je remets le lien vers la page que j'ai fabriquée et qui reprend ces fameuses boucles et formulaires mais avec une seule variable
http://www.adbdp.asso.fr/spip.php?page=stats
Merci de m'aider.
Cordialement,
BS

CREATE TABLE `adbdp` (
  `id` bigint(20) NOT NULL auto_increment,
  `bdp` text NOT NULL,
  `annee` text NOT NULL,
  `stats1` text,
  `stats10` text,
  `stats11` text,
  `stats12` text,
  `stats2` text,
  `stats3` text,
  `stats30` text,
  `stats31` text,
  `stats32` text,
  `stats33` text,
  `stats4` text,
  `stats5` text,
  `stats6` text,
  `stats7` text,
  `stats8` text,
  `stats9` text,
  `statsA11` text,
  `statsA12` text,
  `statsA13` text,
  `statsA14` text,
  `statsA15` text,
  `statsA16` text,
  `statsA17` text,
  `statsA18` text,
  `statsA21` text,
  `statsA22` text,
  `statsA23` text,
  `statsA24` text,
  `statsA31` text,
  `statsA32` text,
  `statsB11X` text,
  `statsB11Y` text,
  `statsB11Z` text,
  `statsB12X` text,
  `statsB12Y` text,
  `statsB12Z` text,
  `statsB13X` text,
  `statsB13Y` text,
  `statsB13Z` text,
  `statsB14Z` text,
  `statsB15` text,
  `statsB21` text,
  `statsB22` text,
  `statsB23` text,
  `statsB31` text,
  `statsB32` text,
  `statsB33` text,
  `statsB34` text,
  `statsB35` text,
  `statsB36X` text,
  `statsB36Y` text,
  `statsB37X` text,
  `statsB37Y` text,
  `statsB38X` text,
  `statsB38Y` text,
  `statsB39` text,
  `statsB40` text,
  `statsB41` text,
  `statsC11S` text,
  `statsC11T`

monnaieancienne a écrit :

Bernard Strainchamps a écrit :

je redis :

spip.php?page=test15&test=2006&test2=statsb14z

J'avais bien lu et testé.. mais sans succès. J'en suis désolé.

J'ai un problème avec [(#ENV{#ENV{test2}})] il ne me transforme pas statsb14z en #STATSB14Z pour afficher les données de ce champ.

Alors change le nom du champ juste pour essai. Je crois et je reste persuadé que ton #ENV{#ENV{2}}
ne peut rien retourner car il va chercher le premier env qui n'existe pas!!! (c'est le même prob que du php dans une boucle spip!!!)
Je redis:

Envois ta structure de ta table, puis à partir de ça on fera un #env compatible... D'autre part sans vraiment savoir, la solution proposée devrait fonctionner!!!

Bon alors :
1- as tu essayé ca :
spip.php?page=test15&test=2006&test2=stats4&test3=stats4
<BOUCLE_anim(ADBDP)>
champ en statique : [(#STAT4)]
champ en statique avec ENV : [(#ENV{#ENV{stat4}})]
contenu du parametre test3 : [(#ENV{test3})]
Contenu du champ [(#ENV{test3})] : [(#ENV{#ENV{test3}})]
</BOUCLE_anim>

2- les noms de champs avec majuscules, ca va poser probleme (tout mettre
en minuscules)

3- tu as 2 problemes distincts, il faut les separer pour les traiter
indépendament.
La quand tu dis que ca ne marche pas, on ne sait jamais si c'est la
boucle qui ne remonte pas de ligne ou le champ qui ne s'affiche pas ou le tri qui est mauvais...

@++

* Bernard Strainchamps tapuscrivait, le 29/04/2008 23:45:

<BOUCLE_anim(ADBDP){annee=#ENV{test}}{par num #ENV{test2}}{inverse}>
<td class="td_valeurdef">[(#ENV{#ENV{test3}})]
</BOUCLE_anim>

Après avoir posé la question à ESJ à troglo SPIP, il n'est pas possible d'avoir des champs dynamiques en balises.
Raison : le compilateur a besoin de savoir à la compilation les champs à afficher en résultat.

Ceci dit, une piste :
[(#ENV{test3}|=={monchamp1}|?{' '})#MONCHAMP1]
[(#ENV{test3}|=={monchamp2}|?{' '})#MONCHAMP2]

Et ça pour autant de champs que tu en as de possibles.

--
RealET

* Bernard Strainchamps tapuscrivait, le 30/04/2008 19:54:

J'ai bien sûr essayer de changer de champ...
Ma boucle marche.
Demain, j'essaierai sur une table spip... pour voir.
Ma base est énorme et structuré très simplement.
Ci dessous, un extrait de la table en question. Elle a 600 champs.
Je remets le lien vers la page que j'ai fabriquée et qui reprend ces fameuses boucles et formulaires mais avec une seule variable
http://www.adbdp.asso.fr/spip.php?page=stats
Merci de m'aider.
Cordialement,
BS

CREATE TABLE `adbdp` (
  `id` bigint(20) NOT NULL auto_increment,
  `bdp` text NOT NULL,
  `annee` text NOT NULL,
  `stats1` text,
  `stats10` text,
  `stats11` text,
  `stats12` text,
  `stats2` text,
  `stats3` text,
  `stats30` text,

Quand je vois ça, je me dis que c'est une erreur de conception de base de données. La 3e forme normale n'est pas respectée. Il y a des informations qui devraient être éclatées en 2 voire 3 tables ici.

--
RealET

CREATE TABLE `adbdp` (
  `id` bigint(20) NOT NULL auto_increment,
  `bdp` text NOT NULL,
  `annee` text NOT NULL,
  `stats1` text,
  `stats10` text,
  `stats11` text,
  `stats12` text,
  `stats2` text,
  `stats3` text,
  `stats30` text,
    

Quand je vois ça, je me dis que c'est une erreur de conception de base de données.

Je ne suis pas concepteur de base de données. J'avoue. Je suis un petit libraire.
En fait, ce sont des stats récupérées via un fichier csv et réintégrées telles quelles dans une table créée à cet effet.
C'est ce que j'ai trouvé de plus simple.

La 3e forme normale n'est pas respectée.
  

Qu'est-ce que cette troisième forme ?

Ceci dit, une piste :
[(#ENV{test3}|=={monchamp1}|?{' '})#MONCHAMP1]
[(#ENV{test3}|=={monchamp2}|?{' '})#MONCHAMP2]
  

ca marche ainsi.

Et ça pour autant de champs que tu en as de possibles.
  

Si j'écris 600[(#ENV{test3}|=={monchamp1}|?{' '})#MONCHAMPX]
dans un squelette, est-ce que ça pose un problème particulier ?

Merci d'avance.
BS

* Bernard Strainchamps tapuscrivait, le 02/05/2008 18:17:

CREATE TABLE `adbdp` (
  `id` bigint(20) NOT NULL auto_increment,
  `bdp` text NOT NULL,
  `annee` text NOT NULL,
  `stats1` text,
  `stats10` text,
  `stats11` text,
  `stats12` text,
  `stats2` text,
  `stats3` text,
  `stats30` text,
    

Quand je vois ça, je me dis que c'est une erreur de conception de base de données.

Je ne suis pas concepteur de base de données. J'avoue. Je suis un petit libraire.
En fait, ce sont des stats récupérées via un fichier csv et réintégrées telles quelles dans une table créée à cet effet.
C'est ce que j'ai trouvé de plus simple.

La 3e forme normale n'est pas respectée.
  

Qu'est-ce que cette troisième forme ?

C'est les règles de conception d'une base de données :
- des informations non corrélées entre elles doivent être dans des tables séparés (exemple : nom et prénom : même table, nom et violon d'Ingres : 2 tables)
- Il faut éviter les doublons (informations qui si elles sont changées une fois doivent être changées partout où elles sont affichées).

Pour aller un peu plus loin : Une base de données simple ! - Pyrat.net – Création de sites Internet

La dernière copie d'écran est le tableau Excel à 3 colonnes du départ (hors colonne 1 qui est les n° auto).

--
RealET