IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

contenu ARRAY dans variable pour passage dans URL


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    met tout dans un array et utilise http_build_query

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...';
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    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" ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    fait un print_r($_GET) sur ton autre page et tu comprendra

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $participants = couriel_01@couriel.fr, couriel_02@couriel.fr, couriel_03@couriel.fr
    je m'y colle...
    merci encore

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    implode

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    si j'écris comme ça, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    ???

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    bon j'y arrive, lentement mais sûrement (j'ai un peu de mal avec les array) !

    avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  11. #11
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Et avec le implode justement ?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['participants'])) echo implode(', ', $_GET['participants']);
    Fred

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    YEP ça maaaaarche
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Mémoriser une variable pour utilisation dans plusieurs procédures
    Par P'tit aviateur dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/07/2009, 11h49
  2. utilsation Variable pour insérer dans une table
    Par jamalsettat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/06/2009, 14h54
  3. Variable pour répartition dans un tableau (module streaming TV)
    Par Freeetv dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 21/07/2007, 15h19
  4. Réponses: 8
    Dernier message: 27/01/2007, 14h44
  5. Réponses: 17
    Dernier message: 06/09/2006, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo