Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 22/02/2011, 15h27   #1
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
Par défaut contenu ARRAY dans variable pour passage dans URL

bonjour,

j'ai fait une requête pour afficher une série de couriels, comme suit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sql = "SELECT couriel FROM ma_table WHERE id_bis=" . $id . "";
$sql_bis = mysql_query($sql);
echo mysql_error();
 
$nb_lignes = mysql_num_rows($sql);
 
echo '<br /><br /><strong>Participants : </strong><br />';
 
if ($nb_lignes != 0) {
 
	while ( $couriel = mysql_fetch_array($sql_bis) ) {
		echo $couriel['couriel'] . ', ';
	}
 
	echo '<a href="message.php?id=' . $id . '&participants=' . $listes_couriels . '">Envoy&eacute; un message </a>';
 
 
	} else {
		echo 'Aucun participant pour le moment...';
	}
}
j'affiche correctement le contenu de $couriel, comme ceci :
couriel_01@developpez.com, couriel_02@developpez.com, couriel_03@developpez.com,

MAIS ce que je n'arrive pas à faire :
récupérer le contenu de mon array $couriel et le placer dans une variable $listes_couriels que je passe dans l'url !

merci de votre aide
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 15h33   #2
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
met tout dans un array et utilise http_build_query

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ini_set('mysql.trace_mode', true);
 
$sql = 'SELECT `couriel` FROM `ma_table` WHERE `id_bis`=' . mysql_real_escape_string($id);
$result = mysql_query($sql);
 
echo '<br /><br /><strong>Participants : </strong><br />';
 
if (mysql_num_rows($result) > 0)
{
    while($data = mysql_fetch_assoc($result))
    {
        $couriels[] = $data['couriel'];
    }
 
    $query = array('id' => $id, 'participants' => $couriels);
 
    echo '<a href="message.php?' . http_build_query($query) . '">Envoyer un message</a>';
}
else
{
    echo 'Aucun participant pour le moment...';
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h17   #3
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
comme URL j'obtiens ceci :

message.php?id=35&participants%5B0%5D=couriel_01%40couriel.fr&participants%5B1%5D=couriel_02%40couriel.fr&participants%5B2%5D=couriel_03%40couriel.fr

est-il possible d'obtenir plutôt ceci :

message.php?id=35&participants=couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr,

également :

"%40" correspondant à l'arobase (@),
à quoi correspond "%5B0%5D" ?
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h19   #4
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
fait un print_r($_GET) sur ton autre page et tu comprendra
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 17h09   #5
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
le print_r($_GET) m'affiche ceci :

Array ( [id] => 35 [participants] => Array ( [0] => couriel_01@couriel.fr [1] => couriel_02@couriel.fr [2] => couriel_03@couriel.fr ) )

ya plus ka faire une boucle pour récupérer sous la forme suivante :

Code :
$participants = couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr
je m'y colle...
merci encore
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 17h50   #6
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
implode
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 21h59   #7
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
si j'écris comme ça, ça fonctionne :

Code :
1
2
3
4
$participants = array('couriel_01@couriel.fr','couriel_02@couriel.fr','couriel_03@couriel.fr');
 
$separation_virgule = implode(",", $participants);
echo $separation_virgule;
ça m'affiche bien :
couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr

mon souci c'est que je n'arrive pas à obtenir la même chose en partant de ce que l'url m'envoie, à savoir :
fichier.php?id=35&participants[0]=couriel_01@couriel.fr&participants[1]D=couriel_02@couriel.fr&participants[2]=couriel_03@couriel.fr
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 22h25   #8
Membre chevronné
 
Avatar de herch
 
Inscription : mai 2006
Messages : 654
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2006
Messages : 654
Points : 748
Points : 748
Code :
1
2
3
4
$participants = array('couriel_01@couriel.fr','couriel_02@couriel.fr','couriel_03@couriel.fr');
 
$separation_virgule = implode(",", $participants);
$url =  'fichier.php?id=35&participants='.$separation_virgule;
???
__________________
En essayant continuellement on finit par réussir.
Donc : plus ça rate, plus on a de chances que ça marche.
herch est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/02/2011, 22h49   #9
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
je m'explique mal... désolé !

en fait j'ai une page fichier_01.php qui fait passer par l'URL une série de variables, comme ceci :
fichier_01.php?id=35&participants[0]=couriel_01@couriel.fr&participants[1]=couriel_02@couriel.fr&participants[2]=couriel_03@couriel.fr

une seconde page fichier_02.php doit récupérer ces variables.

pour la l'id c'est facile, il suffit que je fasse :
Code :
1
2
$id = $_GET[id];
echo $id;
mais là où je flanche, c'est pour récupérer le contenu de "participants"

je voudrais, au même titre que pour l'id, récupérer le contenu de "participants", comme ceci :
couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr

cette variable doit me servir pour envoyer un message par le biais d'un formulaire...

en espérant être plus clair...
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 23h55   #10
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
bon j'y arrive, lentement mais sûrement (j'ai un peu de mal avec les array) !

avec ce code :

Code :
1
2
3
for($i=0; $i < sizeof($participants); $i++) {
    echo $participants[$i] . ', ';
}
ça m'affiche ce que je veux, soit :
couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr,

par contre, je galère avec la dernière virgule que je voudrais supprimer !

j'ai essayer avec substr() mais ça va pas car je sais pas comment l'imbriquer dans ma portion de code...
nicomax34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 00h00   #11
Membre chevronné
 
Avatar de micetf
 
Homme Fred
Professeur des Ecoles
Inscription : mai 2009
Messages : 503
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Professeur des Ecoles
Secteur : Enseignement

Informations forums :
Inscription : mai 2009
Messages : 503
Points : 701
Points : 701
Et avec le implode justement ?
Code PHP :
if (isset($_GET['participants'])) echo implode(', ', $_GET['participants']);
Fred
micetf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 00h06   #12
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 151
Points : 37
Points : 37
YEP ça maaaaarche
merci
nicomax34 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 11h23.


 
 
 
 
Partenaires

Hébergement Web