incrementation dans les noms de variables

incrementation dans les noms de variables - PHP - Programmation

Marsh Posté le 14-06-2004 à 19:00:29    

Est il possible pour obtenir des variables genre :
 
$var1
$var2
$var3
$var4
....
 
de faire une boucle du genre :
 
 

Code :
  1. for($i=4;$i>=0;$i++)
  2. {
  3. $var.$i;
  4. }

Reply

Marsh Posté le 14-06-2004 à 19:00:29   

Reply

Marsh Posté le 14-06-2004 à 19:05:12    

Déjà ta boucle elle marche pas :o
 
Ensuite je crois que tu peux faire un truc dans le genre :

Code :
  1. for($i=1; $i <= 4; $i++){
  2.    ${"var" . $i} = taValeure;
  3. }


 
EDIT : et regarde si tu peux faire ton truc avec des tableaux, ca sera plus propre quand même
 
EDIT2 : grillaid sur l'edit :o


Message édité par harrysauce le 14-06-2004 à 19:06:08
Reply

Marsh Posté le 14-06-2004 à 19:05:39    

Utilise un tableau, c'est fait pour


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 14-06-2004 à 22:08:48    

T509 a écrit :

Utilise un tableau, c'est fait pour


+1000

Reply

Marsh Posté le 14-06-2004 à 22:13:50    

'tain y a pas un boulet pour en rattraper un autre :o

Reply

Marsh Posté le 15-06-2004 à 00:13:25    

Taz a écrit :

'tain y a pas un boulet pour en rattraper un autre :o


c'est la raison d'être des boulets (tirer vers la bas) :o

Reply

Marsh Posté le 15-06-2004 à 10:02:42    

Taz a écrit :

'tain y a pas un boulet pour en rattraper un autre :o


 
Toujours aussi aimables de bon matin je vois ! lol

Reply

Marsh Posté le 15-06-2004 à 10:12:54    

bon je vous explique mon probleme plus clairement...
je fais un site avec 6 etapes....
j'ai voulu jouer aux mariolles en faisant des includes plutot que des successions de etape1.php ... etape2.php...etape3.php.. etc etc
... donc j'ai crée des variables genre = $etape1, $etape2, $etape3.. etc etc etc... le but est simple... je veux avoir trois etats pour mes etapes :
 
$etape(n)= "pas fait";
$etape(n)= "modifier";
$etape(n)= "valide";
 
.. c pourquoi je voulais faire ça...
 
cela dit je devine qu'avec un tableau vous feriez plutot
$etape[1]="valide";
$etape[2]="valide";
$etape[3]="modifier";
$etape[4]="a faire";
$etape[5]="a faire";
etc etc etc ??
 
... mais alors comment je fias pour faire un lien du genre :
 
<a href="index.php?etape[2]=modifier">Modifier l'étape 2</a>
 
... c la que je doute ...
 
autre question... vous feriez comment pour pas qu'il soit possible d'avoir deux etapes avec l'etat "modifier" en même temps ?


Message édité par freed102 le 15-06-2004 à 10:13:50
Reply

Marsh Posté le 15-06-2004 à 12:03:12    

<a href="index.php?etape=2">Modifier l'étape 2</a>
 
et dans ton traitement
 
traitement = $etape[$_GET['etape']]; // dans de cas, traitement = $etape[2]


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 12:17:26    

T509 a écrit :

<a href="index.php?etape=2">Modifier l'étape 2</a>
 
et dans ton traitement
 
traitement = $etape[$_GET['etape']]; // dans de cas, traitement = $etape[2]


 
oui mais là il me manque une info ! ou est passé mon "modifier" ou "validé" etc etc ?pour la même etape il peut y avoir plusieurs traitements ! dois-je faire une autre variable ? genre :
<a href="index.php?etape=2&traitement=modifier">Modifier l'étape 2</a>
 
$etape[$_GET['etape']]=$_GET['traitement'];
 
???? :??:

Reply

Marsh Posté le 15-06-2004 à 12:17:26   

Reply

Marsh Posté le 15-06-2004 à 12:20:22    

freed102 a écrit :

oui mais là il me manque une info ! ou est passé mon "modifier" ou "validé" etc etc ?pour la même etape il peut y avoir plusieurs traitements ! dois-je faire une autre variable ? genre :
<a href="index.php?etape=2&traitement=modifier">Modifier l'étape 2</a>
 
$etape[$_GET['etape']]=$_GET['traitement'];
 
???? :??:


 
Pourquoi pas ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-06-2004 à 12:33:35    

oui cela peut fonctionner.
cela m'a l'air une usine à gaz on truc


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 12:36:43    

j'avoue que je me suis embarqué dans un truc de taré !
 
tout ça pour faire un menu de navigation dynamique...
like this :  
 
http://www.clonecopy.net/php/comma [...] etape1.php
login : xxx@xxx.com pwd: xxx
regarde le menu de gauche.. tu comprendras...


Message édité par freed102 le 15-06-2004 à 12:45:27
Reply

Marsh Posté le 15-06-2004 à 12:45:26    

Euh oui, tu pars dans une usine à gaz.
 
tu dois faire un tableau avec  
$etape[0] = "partie à include 0";
$etape[1] = ...
 
Comme c'est pour choisir les options de commande, tu fonctionne avec des formulaires.
 
Tu ajoutes dans tes formulaire un champs caché appelé etape_suivante.
 
Tu commence par récupérer le numéro d'étape suivante,
tu inclues le fichier de traitement des infos, puis le fichier d'affichage du résultat (même page si erreur de saisie, page suivante si ok)


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 12:49:00    

bah là j'ai fait comme ça : (mais c monstrueux ! lol !)
 

Code :
  1. <?php
  2.    switch ($_SESSION['valideetape1'])
  3.    {
  4.    case "MODIFIER" : include('etape1.inc.php'); break;
  5.    case "VALIDE" :
  6.        switch ($_SESSION['valideetape2'])
  7.        {
  8.        case "MODIFIER" : include('etape2.inc.php'); break;
  9.        case "VALIDE" :
  10.            switch ($_SESSION['valideetape3'])
  11.            {
  12.            case "MODIFIER" : include('etape3.inc.php'); break;
  13.            case "VALIDE" :
  14.                switch ($_SESSION['valideetape4'])
  15.                {
  16.                case "MODIFIER" : include('etape4.inc.php'); break;
  17.                case "VALIDE" :
  18.                    switch ($_SESSION['valideetape5'])
  19.                    {
  20.                    case "MODIFIER" : include('etape4_livr.inc.php'); break;
  21.                    case "VALIDE" :
  22.                        switch ($_SESSION['valideetape6'])
  23.                        {
  24.                        case "MODIFIER" : include('etape5.inc.php'); break;
  25.                        case "VALIDE" : include('valide.inc.php'); break;
  26.                        default : include('etape5.inc.php'); break;
  27.                        }
  28.                    break;
  29.                    default : include('etape4_livr.inc.php'); break;
  30.                    }
  31.                break;
  32.                default : include('etape4.inc.php'); break;
  33.                }
  34.            break;
  35.            default : include('etape3.inc.php'); break;
  36.            }
  37.        break;
  38.        default : include('etape2.inc.php'); break;
  39.        }
  40.    break;
  41.    default: include('etape1.inc.php'); break;
  42.    }
  43.    ?>


 
... ce que je cherche à faire c que l'utilisateur ne soit pas obligé de se retaper toutes les etapes si il veut juste modifier une variable !


Message édité par freed102 le 15-06-2004 à 12:52:36
Reply

Marsh Posté le 15-06-2004 à 12:58:36    

cela ne sert à rien, tu veux utiliser les sessions là ou cela n'est pas necessaire.
 
Pour aller d'une étape à l'autre, le numéro d'étape suivant est suffisant.
 
switch ($_POST['suivant']) {
case 1 : include('etape1.inc.php'); break;
case 2 : include('etape2.inc.php'); break;
case 3 : include('etape3.inc.php'); break;
case 4 : include('etape4.inc.php'); break;
case 5 : include('etape5.inc.php'); break;
default : include('etape1.inc.php'); break;
}
 
en suite dans chaque etapeX.inc.php, tu inclue le traitement de tes variables, leur sauvegarde et l'envoi vers la page qui correspond au résultat du traitement.  
C'est suffisant.
 
Si tu veux que l'on puisse revenir modifier une chose, 2 solutions : tout effacer et rocommencer (les étapes sont simples donc c'est envisageable)
garder un tableau avec les étapes OK en mémoire.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 13:24:00    

T509 a écrit :

cela ne sert à rien, tu veux utiliser les sessions là ou cela n'est pas necessaire.
 
Pour aller d'une étape à l'autre, le numéro d'étape suivant est suffisant.
 
switch ($_POST['suivant']) {
case 1 : include('etape1.inc.php'); break;
case 2 : include('etape2.inc.php'); break;
case 3 : include('etape3.inc.php'); break;
case 4 : include('etape4.inc.php'); break;
case 5 : include('etape5.inc.php'); break;
default : include('etape1.inc.php'); break;
}
 
en suite dans chaque etapeX.inc.php, tu inclue le traitement de tes variables, leur sauvegarde et l'envoi vers la page qui correspond au résultat du traitement.  
C'est suffisant.
 
Si tu veux que l'on puisse revenir modifier une chose, 2 solutions : tout effacer et rocommencer (les étapes sont simples donc c'est envisageable)
garder un tableau avec les étapes OK en mémoire.


 
le $_POST['suivant'] dans mon cas je pense pas que ce soit suffisant... car je passe à l'etape suivante que quand elle est validée ! c pourquoi j'ai fait des variables $valideetape1="VALIDE"; ... c ça qui me permet de passer à l'etape suivante

Reply

Marsh Posté le 15-06-2004 à 13:46:27    

Hypothèse : nous sommes sur le formulaire de l'étape 2 et la soumission envoie $_POST['suivant'] = 3
 
 
Selon mon schéma, tu inclues le fichier etape3.inc.php.
 
dans ce fichier, tu vérifie tes données transmises. Si ok, tu affiches étape 3, si non, tu affiches l'étape 2 avec les messages d'erreurs.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 15-06-2004 à 16:49:21    

T509 a écrit :

Hypothèse : nous sommes sur le formulaire de l'étape 2 et la soumission envoie $_POST['suivant'] = 3
 
 
Selon mon schéma, tu inclues le fichier etape3.inc.php.
 
dans ce fichier, tu vérifie tes données transmises. Si ok, tu affiches étape 3, si non, tu affiches l'étape 2 avec les messages d'erreurs.


ouai.. mais là je retourne dans le shemas ou je peux pas modifier une etape seule... il passe à la l'etape suivante quoi qu'il en soit !
dans notre cas c assez important que l'utilisateur ne se retape pas tout le site à chaque fois qu'il veut changer un parametre ! c pourquoi je veux faire un systeme qui valide les etapes separement... et la commande est validée que si toutes les etapes sont validées !

Reply

Marsh Posté le 15-06-2004 à 16:53:54    

Dans ta vérification des données, tu vérifies si les données on déjà été sauvegardées. Si oui, c'est que l'étape a déjà été validée et qu'il faut une modif. Donc tu réaffiches les données pour qu'elles puissent être modifiées.
 
C'est juste un lien <a href=".../index.php?etape=...&modif=1"> Modifiez l'étape ...</a>


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed