problème de $$ dans un foreach

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de $$ dans un foreach

Re: problème de $$ dans un foreach

par Ehplod » 02 sept. 2010, 15:53

ok, je me prenais la tête pour rien...
Je cherchais à afficher dans ma fonction le nom du tableau alors que y a pas besoin... #-o

Re: problème de $$ dans un foreach

par macgawel » 02 sept. 2010, 14:52

J'essaye d'en faire une fonction comme ceci mais, il faut que la variable envoyée soit utilisée comme nom de variable dans la fonction d'où les double dollar $$
Là, c'est moi qui ne comprends pas :oops:
Pourquoi utiliser les $$ ?

Tu l'appelles comment, ta fonction ?
Perso, avec un tableau $requete à traiter, je ferais ça :
function PostAffichage($tableau){
	foreach($tableau as $cle => $valeur) {
		$tableau[$cle] = nl2br(htmlentities(stripslashes($valeur), ENT_QUOTES, 'UTF-8'));
	}
	return $tableau;
}

$array = Array ('clé1' => "val1", 'clé2' => 'val2');
$result = PostAffichage($array);
Sinon, il y a une fonction sympa en php :
array_map()

Re: problème de $$ dans un foreach

par stealth35 » 02 sept. 2010, 14:05

faut utiliser le global,
bon par contre tout çà c'est quand même hyper moche

bouclé sur le tableau sera plus simple,
$requete = PostAffichage($requete);

Re: problème de $$ dans un foreach

par Ehplod » 02 sept. 2010, 13:57

Euuuhhhh, j'ai pas compris.

J'essaie m'expliquer autrement :

si je fais une requêtes sql comme suit :
$requete = "Select Titre, ...."
$requete = mysql_query($requete)
$requete  = mysql_fetch_assoc($requete );
Ensuite, par exemple, echo $requete['Titre'] affichera L\'équateur

Moi, je veux qu'il affiche : L'équateur
pour cela, on fait :
echo htmlentities(stripslashes($requete['Titre']));
Je me simplifie en modifiant toutes les données via un foreach comme suit :
foreach($requete as $cle => $valeur)$requete[$cle] = htmlentities(stripslashes($valeur), ENT_QUOTES, 'UTF-8');
ainsi, on prend $requete['Titre'], on lui met htmlentities, stripslashes et on remet tout dans $requete['Titre'].

J'essaye d'en faire une fonction comme ceci mais, il faut que la variable envoyée soit utilisée comme nom de variable dans la fonction d'où les double dollar $$
function PostAffichage($var){
foreach(${$var} as $cle => $valeur)${$var}[$cle] = nl2br(htmlentities(stripslashes($valeur), ENT_QUOTES, 'UTF-8'));
}

Re: problème de $$ dans un foreach

par Nours312 » 02 sept. 2010, 13:11

ce qui ce passe, c'est qu'il n'y a pas de variable $requete dans ta function ...

as tu essayé de te servir de global

problème de $$ dans un foreach

par Ehplod » 02 sept. 2010, 12:25

Bonjour,

Je cherche à faire une fonction qui me permettra de modifier à la volée mes données issue de ma bdd.

j'ai fais ceci qui fonctionne.
Je le place après mes mysqli_fetch_...
foreach($requete as $cle => $valeur)$requete[$cle] = nl2br(htmlentities(stripslashes($valeur), ENT_QUOTES, 'UTF-8'));
Je souhaite en faire une fonction pour l'appeler plus facilement.
Ceci ne fonctionne pas...
function PostAffichage($var){
foreach(${$var} as $cle => $valeur)${$var}[$cle] = nl2br(htmlentities(stripslashes($valeur), ENT_QUOTES, 'UTF-8'));
}
...
PostAffichage("requete")
Erreur sur le foreach et ce, que je mette ${$var} ou $$var