[PHP] Problemes de tableaux svp

Problemes de tableaux svp [PHP] - PHP - Programmation

Marsh Posté le 07-04-2004 à 17:09:15    

J'ai pensé à ca :
 

Code :
  1. $tab = array ($_POST['nom'],$_POST['prenom']);
  2. foreach ($tab as $val) $val = htmlentities($val);


 
Mais ca ne marche pas
 
Par contre si je fais :
 

Code :
  1. $tab = array ($_POST['nom'],$_POST['prenom']);
  2. foreach ($tab as $val) echo $val;


 
Les valeurs s'affichent.
 
En fait vous l'avez compris j'aimerai pouvoir faire un trim($val), htmlentities ...


Message édité par compuman101 le 07-04-2004 à 23:39:23

---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 17:09:15   

Reply

Marsh Posté le 07-04-2004 à 17:15:34    

Reply

Marsh Posté le 07-04-2004 à 17:23:12    

Reply

Marsh Posté le 07-04-2004 à 17:31:43    

Tu veux effectuer la même action sur toutes les variables d'un tableau, en modifiant leur valeur ?  
 
Si oui, va voir du côté d'array_walk() :)

Reply

Marsh Posté le 07-04-2004 à 17:34:16    

naceroth a écrit :

Tu veux effectuer la même action sur toutes les variables d'un tableau, en modifiant leur valeur ?  
 
Si oui, va voir du côté d'array_walk() :)


 
Merci je vais aller voir
Oui en fait je voulais constituer un tableau de variables et appliquer à ces variables des fonctions, du genre, suppression du premier espace, htmlentities...  
 
Pour faire une espece de boucle ... et appliquer tout ca à mes variables


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 18:06:26    

Code :
  1. for($n = 0; isset($tab[$n]) ; $n++){
  2. $tab[$n] = ...;
  3. }

Pour un bête tableau indexé, ça devrait suffire ?
Sinon jongle avec key() et next().

Reply

Marsh Posté le 07-04-2004 à 18:17:54    

y a toujours des gens pour réinventer la roue :)

Reply

Marsh Posté le 07-04-2004 à 18:26:07    

naceroth a écrit :

y a toujours des gens pour réinventer la roue :)

Du genre array_walk (qui, rappelons le, ne marche qu'avec des fonctions utilisateur) ? ;)

Reply

Marsh Posté le 07-04-2004 à 18:31:12    

Reply

Marsh Posté le 07-04-2004 à 18:35:00    

kalex a écrit :

Du genre array_walk (qui, rappelons le, ne marche qu'avec des fonctions utilisateur) ? ;)


 
Certes :)
 
Mais les opérations de nettoyage de variables sont tellement courante que créer une fonction pour ça est presque un réflexe naturel :)

Reply

Marsh Posté le 07-04-2004 à 18:35:00   

Reply

Marsh Posté le 07-04-2004 à 18:38:41    

Alors, je dois manquer de réflexe... :D

Reply

Marsh Posté le 07-04-2004 à 18:40:44    

Code :
  1. $_POST['societe']=(isset($_POST['societe']) ? $_POST['societe'] : '');
  2.  $_POST['nom']=(isset($_POST['nom']) ? $_POST['nom'] : '');
  3.  $_POST['prenom']=(isset($_POST['prenom']) ? $_POST['prenom'] : '');
  4.  $_POST['identifiant']=(isset($_POST['identifiant']) ? $_POST['identifiant'] : '');
  5.  $_POST['adresse']=(isset($_POST['adresse']) ? $_POST['adresse'] : '');
  6.  $_POST['code_postal']=(isset($_POST['code_postal']) ? $_POST['code_postal'] : '');
  7.  $_POST['ville']=(isset($_POST['ville']) ? $_POST['ville'] : '');
  8.  $_POST['pays']=(isset($_POST['pays']) ? $_POST['pays'] : '');
  9.  $_POST['email']=(isset($_POST['email']) ? $_POST['email'] : '');
  10.  $_POST['telephone']=(isset($_POST['telephone']) ? $_POST['telephone'] : '');
  11.  $_POST['site_web']=(isset($_POST['site_web']) ? $_POST['site_web'] : '');
  12.  $_POST['jour']=(isset($_POST['jour']) ? $_POST['jour'] : '');
  13.  $_POST['mois']=(isset($_POST['mois']) ? $_POST['mois'] : '');
  14.  $_POST['annee']=(isset($_POST['annee']) ? $_POST['annee'] : '');
  15.  $_POST['competence']=(isset($_POST['competence']) ? $_POST['competence'] : '');


 
J'ai tout un bloc comme ca obligatoire ?
parce que si je fais :
 

Code :
  1. $tableau = array (
  2.    $_POST['societe'],
  3.    $_POST['nom'],$_POST['prenom'],
  4.    $_POST['identifiant'],
  5.    $_POST['adresse'],
  6.    $_POST['code_postal'],
  7.    $_POST['ville'],
  8.    $_POST['pays'],
  9.    $_POST['email'],
  10.    $_POST['telephone'],
  11.    $_POST['site_web'],
  12.    $_POST['jour'],
  13.    $_POST['mois'],
  14.    $_POST['annee'],
  15.    $_POST['competence']);


 
Il me dit que les variables ne sont pas définies


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 18:44:36    

encore un soucis :D
 

Code :
  1. if(isset($_POST['submit'])){
  2.  $tableau = array (
  3.    $_POST['societe'],
  4.    $_POST['nom'],$_POST['prenom'],
  5.    $_POST['identifiant'],
  6.    $_POST['adresse'],
  7.    $_POST['code_postal'],
  8.    $_POST['ville'],
  9.    $_POST['pays'],
  10.    $_POST['email'],
  11.    $_POST['telephone'],
  12.    $_POST['site_web'],
  13.    $_POST['jour'],
  14.    $_POST['mois'],
  15.    $_POST['annee'],
  16.    $_POST['competence']);
  17.  for ($i = 0, $n = count($tableau); $i < $n; $i++)
  18.  {
  19.   $tableau[$i] = "TEST";
  20.  }
  21.  echo $_POST['societe'];


 
C'est normal qu'il m'affiche la valeur tappée dans le champ société et non "TEST"  :??: :(


Message édité par compuman101 le 07-04-2004 à 18:45:35

---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 18:46:32    

ouppps j'ai compris :D il faut que j'accede maintenant aux variables du tableau ... ca marche pas dans les deux sens :D


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 18:47:38    

compuman101 a écrit :

Code :
  1. $_POST['societe']=(isset($_POST['societe']) ? $_POST['societe'] : '');
  2.  $_POST['nom']=(isset($_POST['nom']) ? $_POST['nom'] : '');
  3.  $_POST['prenom']=(isset($_POST['prenom']) ? $_POST['prenom'] : '');
  4.  $_POST['identifiant']=(isset($_POST['identifiant']) ? $_POST['identifiant'] : '');
  5.  $_POST['adresse']=(isset($_POST['adresse']) ? $_POST['adresse'] : '');
  6.  $_POST['code_postal']=(isset($_POST['code_postal']) ? $_POST['code_postal'] : '');
  7.  $_POST['ville']=(isset($_POST['ville']) ? $_POST['ville'] : '');
  8.  $_POST['pays']=(isset($_POST['pays']) ? $_POST['pays'] : '');
  9.  $_POST['email']=(isset($_POST['email']) ? $_POST['email'] : '');
  10.  $_POST['telephone']=(isset($_POST['telephone']) ? $_POST['telephone'] : '');
  11.  $_POST['site_web']=(isset($_POST['site_web']) ? $_POST['site_web'] : '');
  12.  $_POST['jour']=(isset($_POST['jour']) ? $_POST['jour'] : '');
  13.  $_POST['mois']=(isset($_POST['mois']) ? $_POST['mois'] : '');
  14.  $_POST['annee']=(isset($_POST['annee']) ? $_POST['annee'] : '');
  15.  $_POST['competence']=(isset($_POST['competence']) ? $_POST['competence'] : '');


 
J'ai tout un bloc comme ca obligatoire ?
parce que si je fais :
 

Code :
  1. $tableau = array (
  2.    $_POST['societe'],
  3.    $_POST['nom'],$_POST['prenom'],
  4.    $_POST['identifiant'],
  5.    $_POST['adresse'],
  6.    $_POST['code_postal'],
  7.    $_POST['ville'],
  8.    $_POST['pays'],
  9.    $_POST['email'],
  10.    $_POST['telephone'],
  11.    $_POST['site_web'],
  12.    $_POST['jour'],
  13.    $_POST['mois'],
  14.    $_POST['annee'],
  15.    $_POST['competence']);


 
Il me dit que les variables ne sont pas définies

Ca dépend, tu veux identifier ton tableau par des nombres (0,1,2...) ou du texte (nom, prenom, ...) ?

Reply

Marsh Posté le 07-04-2004 à 18:52:03    

En fait à l'origine je voulais simplement avoir une liste de variables, auquelles je pourrai appliquer les memes fonctions simplement..


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 07-04-2004 à 23:21:47    

je suis paumé la  :pt1cable:  
 

Code :
  1. $_POST['societe'] = "Petit essai";
  2. $tab = array ("societe" => $_POST['societe']);
  3. foreach($tab as $nom => $valeur)
  4. {
  5. $valeur = "TEST";
  6. echo $nom.' : '.$valeur.'<br>';
  7. }


J'obtiens : societe: test
 
si appres dans le code je fais  

Code :
  1. echo $tab['societe'];


 
ca affiche "Petit essai"
 
En gros j'ai l'impression qu'il y a comme des variables locales :(


Message édité par compuman101 le 07-04-2004 à 23:24:59
Reply

Marsh Posté le 08-04-2004 à 01:00:28    

C'est pas tant qu'il y ait des variables locales que le fait que $valeur n'est pas lié à $tab.
 
Pour modifier le tableau lui même, tu devrais faire

Code :
  1. $tab[$nom]= "TEST";

Reply

Marsh Posté le 08-04-2004 à 01:06:50    

naceroth a écrit :

C'est pas tant qu'il y ait des variables locales que le fait que $valeur n'est pas lié à $tab.
 
Pour modifier le tableau lui même, tu devrais faire

Code :
  1. $tab[$nom]= "TEST";




ah d'accord donc $valeur est ce que je pourrai appeller une valeur temporaire dans laquelle etait mise la valeur parcourue à l'instant N, j'avais beau effectuer des opérations dessus à l'instant N+1 elle etait écrasée
 
Est ce bien ca ?


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le 08-04-2004 à 01:32:25    

En résumé :
 
l'instruction foreach travaille sur une copie du tableau, pas sur le tableau lui-même, modifier $valeur n'a donc aucun impact sur $tab :)
 
$valeur est bien écrasé (enfin, réinitialisé serait peut être plus correct) à chaque passage.

Reply

Marsh Posté le 08-04-2004 à 01:32:31    

$valeur est une variable dans laquelle tu as copié la valeur d'une des variables de ton tableau (une copie quoi). D'ailleurs, n'oublie pas qu'un tableau c'est qu?une manière de représenter un groupe de variables.

Reply

Marsh Posté le 08-04-2004 à 03:01:56    

merci bcp :jap:
tout fonctionne à merveille j'ai juste un ptit soucis pour vérifier une chaine de caracteres mais je vais trouver :)


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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