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 :

Mettre en session chaque résultat d'une requête


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut Mettre en session chaque résultat d'une requête
    Bonjour

    Je ne suis pas très fort pour les titres, donc un bon code vaut mieux :

    Bon, c'est simplifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // j'écris ma reqête
    $sql="select ...";
     
    //je vais chercher les résultats
    $req = mysql_query($sql)
     
     
    //on boucle sur $data
    while ( $data = mysql_fetch_assoc($req)) {
     
    // on annonce les résultats
    echo '<a href="qqpart.com">'.$data['mon champ']."</a>;

    Ce que je n'arrive pas c'est à faire passer un $_SESSION dans le lien pour chacune des valeurs de ma requête.



    merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce que tu veux dire par "faire passer une session dans le lien" ?

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Qu'est ce que tu veux dire par "faire passer une session dans le lien" ?

    en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ''.$_SESSION['bidon']=$data['mon champ']. '<a href="qqpart.com">'.$data['mon champ']."</a>;
    ==> la le code est faux



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $_SESSION['bidon']=$data['mon champ']
     
    echo "<a href=\"qqpart.com\">".$data['mon champ']."</a>";
    ==> la il ne prend que la dernière valeur de ma requête pour tous les liens

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faudrait que tu revois les bases de la syntaxe avant d'aborder des projets plus ambitieux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['bidon'][]=$data['mon champ']

  5. #5
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['bidon'][]=$data['mon champ']
    Au final, non je n'ai pas compris. Désolé, il faut m'expliquer longtemps ... c'est quoi les crochets qui se trouvent derrière "bidon" ?

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Salut,

    Ce que Sabotage veux que tu comprennes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['bidon']=$data['mon champ']
    représente une variable a une et une seule valeur possible (d'ou c normal qu'elle possédera ta dernière valeur .....

    Donc pour y remédier tableau a 2 dimenssions genre tab[1][1], tab[1][2],
    etc etc
    tab contiendra toutes tes valeurs.

    Voir aussi array avec push (je crois ....)

  7. #7
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    merci pour ta réponse

    si j'ai bien compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_SESSION ['bidon'] = $data['mon champ']
     
    $tab = $data['mon champ']
     
    $_session ['bidon'] = $tab

  8. #8
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Non non, tu fais comme SAbotage a dit:

    A chaque valeur dans ton While:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['bidon'][]=$data['mon champ']
    A la fin tu aurras:
    $_SESSION['bidon'][0]=Ta première valeur du fetch
    $_SESSION['bidon'][1]=ta deuxième valeur,
    $_SESSION['bidon'][2]=3eme,
    etc etc


  9. #9
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    ah ok, il faut mettre tous les valeurs pour les exporter. Mais alors, si j'ai 100 réponses possible il faut que je les développe toutes?

    Peut-on :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $nombre = 0;
     
    $_SESSION['bidon'][$nombre]=$data['mon champ']
     
    ...
     
    $nombre ++;

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il existe la fonction foreach() pour parcourir un tableau.

  11. #11
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    ok merci beaucoup !!!

  12. #12
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Fench Voir le message
    Non non, tu fais comme SAbotage a dit:

    A chaque valeur dans ton While:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['bidon'][]=$data['mon champ']
    A la fin tu aurras:
    $_SESSION['bidon'][0]=Ta première valeur du fetch
    $_SESSION['bidon'][1]=ta deuxième valeur,
    $_SESSION['bidon'][2]=3eme,
    etc etc


    je suis désolé, mais je n'ai pas réussis à reprendre ton code par rapport au code que j'ai développé au début ... Si tu pouvais préciser ou m'indiquer un tuto, ça serait sympa

    Ce que je cherche à faire, c'est

    1/ sur un premier formulaire saisir un champ.
    2/ sur un deuxième, qui fasse une recherche par rapport à la base de données et qu'il me sorte les réponses les plus proches par rapport au 1/

    3/ qu'il me sorte une liste de ces réponses ou je pourrais cliquer sur un réponse, afin qu'il cherche la donnée correcte dans la base de donnée.

    (ex : quand on fais la recherche "saint jean" sur un plan de ville il va proposer une liste ou l'on pourra faire un choix )

    Peut-être n'ai-je pas employé la bonne méthode pour cette réalisation ...

    merci merci beaucoup d'avance pour vos conseils ...

  13. #13
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut faute de grives ... on fait tout passer par l'url, même si c'est moche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = 'select results.nom_equipe_result from results where results.nom_equipe_result like "%'.mysql_real_escape_string($_POST['nomequipe']).'%" group by results.nom_equipe_result  asc';
    	$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
     
    	echo ' <p class="titre_cadre_droit">Recherche par nom de club </p><br />';
    	echo "Préciser la recherche : <br /><br />";
     
    if (mysql_num_rows($req) == 0) {echo "pas de résultat";}
     
    	while ($data = mysql_fetch_assoc($req))
    	{
     
    echo "<a href=\"statequipe.php?nomequipecorrect=". $data['nom_equipe_result'] . "\">". $data['nom_equipe_result'] . "</a><br/>";
    	}
    et puis si il y a une bonne âme qui passe par là ... pour pas que je fasse le

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 63
    Points
    63
    Par défaut
    Je suis désolé je n'ai pas trop de temps devant moi, mais je pense qu'une petite fonction te sera très utile pour comprendre le contenu des variables en php, il s'agit de print_r(). Encadré par des <pre> </pre> la sortie est des plus lisible.

    Pour vérifier ce que tes tableaux contiennent, tu peux simplement faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SESSION);
    echo '<pre>';
    Tu peux ainsi voir le contenu du tableau $_SESSION. Si tu veux voir un index particulier de ce contenu c'est pareil (a condition de vérifier que l'index existe).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SESSION['ton_index']);
    echo '<pre>';
    Ce n'est pas grand chose mais cela peut te faciliter la vie si tu ne connaissais pas

    Dans le même registre, il y a var_dump() (voir la doc)

    Bon courage,

    Cyril

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour savoir ce que fait le fonction print_r :
    http://php.net/manual/fr/function.print-r.php

  16. #16
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    si j'ai bien capté le truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tunnel = array( $data); // je mets mes données en tableau
    $montagne  =  print_r($tunnel, true); // dans cette variable je mets mes données et leurs informations.
    $_SESSION ['autoroute'] [] = $envoi; // je mets le truc en session
    et pour l'afficher à l'arrivée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $arrivee = $_SESSION ['autoroute'];
     
    print_r ($arrivee, [0]);
    print_r ($arrivee, [1]);
    ...
    j'ai encore écrit une bétise?

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    print_r est uniquement une fonction de debogage qui permet d'afficher ce que contient un tableau.

  18. #18
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir, abrégeons

    Je n'ai pas compris, tu souhaites :

    1. stocker la valeur de data en session pour chaque ligne retournée ?
    2. écrire une valeur que tu as en session dans ton lien ?

    1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_SESSION['bidon'] = array();
    while ($data = mysql_fetch_assoc($req)){     
        $_SESSION['bidon'][] = $data['nom'];
        echo "<a href=\"statequipe.php?nomequipecorrect=". $data['nom_equipe_result'] . "\">". $data['nom_equipe_result'] . "</a><br/>";
    }
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($data = mysql_fetch_assoc($req)){     
        echo '<a href="statequipe.php?nomequipecorrect='.$data['nom_equipe_result'].'&bidon='.$_SESSION['bidon']
    .'">'.$data['nom_equipe_result'].'</a><br/>';
    }
    Voici des cours pour les débutants sur le PHP :
    http://sylvie-vauthier.developpez.co...rand-debutant/

    Les chapitres qui te concerne :
    http://sylvie-vauthier.developpez.co...tableaux#LIV-1
    http://php.developpez.com/cours/sess...=page_3#LIII-C

    À bientôt,

  19. #19
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Bonjour thomas et merci pour ta réponse

    C'est le 1 que je veux réaliser.

    Dans ton code, la tu fais quand même passer tes données dans ton lien. (Ce que je voudrais éviter).

    Citation Envoyé par ThomasR Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomequipecorrect=". $data['nom_equipe_result'] . "\">".
    Donc, la session ne sert à rien puisque je peux récupérer ma donnée par derrière en faisant un $_GET

    Es ce que l'on peut simplement, envoyer la session (le tableau) et la retraiter par derrière après l'envoie de la page? Et comment fait-on pour la retraiter et afficher les données correspondant au club cliqué. ( Sans tout afficher avec print)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION['bidon'] = array();
    while ($data = mysql_fetch_assoc($req)){     
        $_SESSION['bidon'][] = $data['nom'];
        echo "<a href=\"statequipe.php\"</a><br/>";
    }

    Et puis je crois que je vais arrêter car je ne pensais pas pas avoir un problème aussi compliqué.

    Merci quand même à tous.

  20. #20
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Ta demande est tout de suite plus claire.

    Dans les cours que je t'ai linké, as-tu lu la partie dédiée aux sessions ?

    Pour récupérer une valeur de session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    session_start();
    if(isset($_SESSION['bidon']))
        foreach($_SESSION['bidon'] as $b)
            echo $b;
     
    // print_r($_SESSION['bidon']); permet de déboguer la variable et d'en voir le contenu si il y a un problème.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2007, 09h08
  2. Réponses: 2
    Dernier message: 27/03/2007, 01h19
  3. Réponses: 10
    Dernier message: 04/01/2007, 14h32
  4. Réponses: 6
    Dernier message: 25/09/2006, 14h11
  5. mettre en évidence le résultat d'une requête
    Par mussara dans le forum Langage
    Réponses: 5
    Dernier message: 21/06/2006, 17h38

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