Blocage dans une boucle for

Blocage dans une boucle for - PHP - Programmation

Marsh Posté le 24-07-2005 à 22:57:23    

Bonjour,
 
Un problème que je pense assez basique sur une boucle for mais que je n'arrive pas à résoudre :
 

Code :
  1. for ($i=0; $i<=18; $i++){
  2. $variable = '$champ'.$i.'_remarque';
  3. if ($variable == "Remarques" || $variable == "" ) {
  4.  $variable = "...vide...";
  5. }
  6. }


 
le $variable de la condition if ne semble pas s'appliquer à $champ1_note !
 
Merci de votre aide

Reply

Marsh Posté le 24-07-2005 à 22:57:23   

Reply

Marsh Posté le 24-07-2005 à 23:06:02    

Deux choses :
 
1. Pour un nom de variable "dynamique", on utilise la syntaxe : ${'nom_de_variable'}, mais c'est moche et 99% du temps remplaçable par une syntaxe tableau. Faut voir dans ton cas, mais si ça vient d'un formulaire comme ça en a l'air c'est tout à fait faisable.
 
2.

Code :
  1. $a = 1; $b = $a; $b = 3; echo $a;

affiche 1. Vu ta boucle, t'as l'air de croire que ça affiche 3.


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

Marsh Posté le 24-07-2005 à 23:29:03    

Le but de ce code est assez simple :  
J'ai 18 variables du type $champ1_remarque (de 1 à 18), et je veux vérifier pour chacune que si elle contient un élément x ou y, elle prenne la valeur z.
 
plutôt que de passer chaque cas en revue, j'ai essayé de faire une boucle.


Message édité par bepimaco le 24-07-2005 à 23:29:32
Reply

Marsh Posté le 24-07-2005 à 23:31:51    

Ben je t'ai expliqué que tu t'y prenais mal sur ta deuxième ligne, et que tu peux sûrement faire plus propre. (edit: et toujours avec une boucle, sien bûr)


Message édité par sielfried le 24-07-2005 à 23:32:09

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

Marsh Posté le 24-07-2005 à 23:38:06    

Je vais essayer de mettre un tableau sur la deuxième ligne

Reply

Marsh Posté le 24-07-2005 à 23:39:35    

Reply

Marsh Posté le 24-07-2005 à 23:43:55    

Ce n'est pas ça que tu as proposé ? Mettre chaque élément différent dans un tableau, et parcourir le tableau ensuite ?

Reply

Marsh Posté le 24-07-2005 à 23:46:19    

Quelque chose comme :
 

Code :
  1. for ($i=0; $i<=18; $i++){
  2.     $tableau[]= '$champ'.$i.'_remarque';
  3.     if ($tableau[] == "Remarques" || $tableau[] == "" ) {
  4.         $tableau[] = "...vide...";
  5.     }
  6. }


 
devrait fonctionner !


Message édité par bepimaco le 24-07-2005 à 23:47:15
Reply

Marsh Posté le 25-07-2005 à 00:03:49    

Je crois plutôt que tu vas ajouter un élément au tableau plutôt que de remplacer la valeur du dernier élément [:figti]  
 
$variable = ${'champ'.$i.'_remarque'};
Ca met dans $variable le contenu de la variable nommée champ1_remarque (si $i == 1)
(faut pas mettre le $ devant "champ" ).
 
Autre solution :
if ($$variable == "Remarques" || $$variable == "" ) {


Message édité par mrbebert le 25-07-2005 à 00:05:15
Reply

Marsh Posté le 25-07-2005 à 08:42:34    

C'est vrai qu'il y a aussi le coup du $$ mais c'est toujours pas très joli. :spamafote:


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

Sujets relatifs:

Leave a Replay

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