Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2011, 11h19   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Par défaut mettre une variable dans un array

Bonjours,

après avoir fait des recherches sur le net j'arrive pas à trouver une solutions à mon problème ou alors il y en a pas.

Au dernier recoure je fais appel a vous.

j'aimerai mettre une variable dans mon array j'ai fait comme sa:

Code :
1
2
3
4
 
$pays_traite = "'au','nz','fr'";
	echo $pays_traite;
	$array_pays = array($pays_traite);
mais sa marche pas si quelqu'un(e) peut m'aider ce serait gentille
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h28   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Avec eval :
Code :
eval('$array_pays=(' . $pays_traite . ');');
Le mieux est quand même de revoir la facon dont arrivent tes données en entrée.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h35   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
les guillemets c'est obligé ? parce qu'un explose suffirait,

EDIT : au pire un petit regex :

Code :
1
2
3
$pays_traite = "'au','nz','fr'";
preg_match_all('/\'(.*?)\',?/', $pays_traite, $matches);
print_r($matches[1]);
ou avec PHP 5.3 et str_getcsv
Code :
1
2
3
$pays_traite = "'au','nz','fr'";
$array = str_getcsv($pays_traite, ',', '\'');
print_r($array);
ou si < PHP 5.3 fgetcsv
Code :
1
2
3
4
$pays_traite = "'au','nz','fr'";
$handle = fopen('data:,' . urlencode($pays_traite), 'r');
$array = fgetcsv($handle, 0, ',', '\'');
print_r($array);
bref plein de solutions pas forcement géniale, je rejoins sabotage pour sa remarque
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h52   #4
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci

mais j'ai ce message d'erreur :

Citation:
Parse error: syntax error, unexpected ',' in /stats/stats.php(118) : eval()'d code on line 1
et honnêtement je maitrise pas très bien le eval() enfin tu vien de me le faire découvrir

j'ai fait comme sa:

Code :
1
2
3
4
5
6
	$pays_traite = "'au','nz','fr'";
	echo $pays_traite;
 
	eval('$array_pays=(' . $pays_traite . ');');
 
	foreach ($array_pays as $id_pays )  {
et sa me sort

Citation:
'au','nz','fr'
Parse error: syntax error, unexpected ',' in /stats/stats.php(118) : eval()'d code on line 1
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 11h54   #5
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
ils arrivent par un $_GET
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 12h06   #6
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci stealth35

par contre après je fais comment avec mon

foreach ($array_pays as $id_pays ) {

là j'ai un peu de peine avec les tableaux
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 12h40   #7
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci pour tous j'ai trouver

j'ai fait comme sa:
Code :
1
2
3
4
5
 
$pays_traite = "'au','nz','fr'";
preg_match_all('/\'(.*?)\',?/', $pays_traite, $matches);
// print_r($matches[1]);
	foreach ($matches[1] as $k => $id_pays )  {
Merci encore de votre aide par contre comme je suis nul en tableau si quelqu'un pouvait m'expliqué le fonctionnement du :
foreach ($matches[1] as $k => $id_pays )

car je saisie pas tous Merci
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 13h24   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par sinifer Voir le message
Merci encore de votre aide par contre comme je suis nul en tableau si quelqu'un pouvait m'expliqué le fonctionnement du :
foreach ($matches[1] as $k => $id_pays )

car je saisie pas tous Merci
il suffit d'aller sur la doc :
http://fr.php.net/manual/fr/control-...es.foreach.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 20h43   #9
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Pour mon eval, j'ai oublié le array tout betement :
Code :
eval('$array_pays=array(' . $pays_traite . ');');
mais traiter un eval avec des données recues par GET, je suis contre.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h12.


 
 
 
 
Partenaires

Hébergement Web