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 :

variables de session et compteurs


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut variables de session et compteurs
    Bonjour,

    J'ai besoin de générer un nombre changeant de variables de session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            $i=0;
            while ($row = $SQL->fetch(PDO::FETCH_ASSOC))
                {
                     $i++;
                     // Bla, bla, etc.
     
                     while ($row2 = $SQL2->fetch(PDO::FETCH_ASSOC))
                        {
                            $_SESSION["FruitOrdre_$i"] = $row2['adresse'];
                            echo "<br \>FruitOrdre " .$i. " ". $_SESSION["FruitOrdre_$i"];
                        }
                }
    Je récupère bien des variables $_SESSION["FruitOrdre_1"], $_SESSION["FruitOrdre_2"], etc avec leur valeur (vérifié avec un var_dump).

    Mon problème survient quand j'utilise la boucle suivante pour visualiser les 10 premières valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            $z=0
            while ($z<10)
                {
                    $z++;
                    echo "<BR \>FruitOrdre " .$z. " ". $_SESSION["FruitOrdre_$z"];
                }
    Cela ne fonctionne pas car le script s’arrête.
    Sauriez-vous pourquoi ? D'avance, merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 417
    Points : 834
    Points
    834
    Par défaut
    Pour être honnête, je ne pige pas trop ce que tu fais. Mais je trouve très curieux que tu incrémentes ton itérateur avant d'effectuer les instructions qui sont dans la boucle : tu ne traites pas ainsi le premier élément de ton tableau/objet et tu demandes en fin de boucle de traiter un élément qui n'existe pas.

  3. #3
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour domi65,

    Merci de ton intervention.
    Je n'ai pas donné le contenu de ce que j'ai résumé en et qui n'expliquerait en rien mon problème.
    Le but de ma question est juste de savoir pourquoi je ne peux pas visualiser les 10 premières valeurs.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Bonjour,
    commence donc déjà par utiliser un tableau plutôt que des variables de session 1,2,3,x

    Ca va simplifier beaucoup de chose.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour et merci grunk,

    N'étant pas un professionnel dans ce domaine (je pense que tu l'as compris), je suis parti sur ces variables sachant que j'ai besoin de leurs valeurs dans plusieurs pages.
    Si tu me le conseilles, je vais m'atteler aux tableaux mais, pour ma gouverne, vois-tu mon erreur dans cet affichage ?
    Cordialement,

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    quelques commentaires dans ton code :

    Code php : 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
    23
    24
     
    $i=0;
    while ($row = $SQL->fetch(PDO::FETCH_ASSOC))/*les valeurs retournées par ce fetch ne sont utilisées nulle part*/
    {
    $i++;
    // Bla, bla, etc.
     
    while ($row2 = $SQL2->fetch(PDO::FETCH_ASSOC))
    {
    $_SESSION["FruitOrdre_$i"] = $row2['adresse'];/*chaque nouvelle valeur retournée par le fetch va écraser la valeur de
    session précédente et au final, la valeur de session prendra la dernière valeur retournée par le fetch.*/
    echo "<br \>FruitOrdre " .$i. " ". $_SESSION["FruitOrdre_$i"];//on écrit plutôt <br/>
    }
    }
     
     
    $z=0
    while ($z<10)
    {/*la boucle fetch effectuée sur le PDO_statement $SQL ne sert qu'à incrémenter $i ($row n'est jamais utilisée). Vu
    qu'on utilise $i pour alimenter $_SESSION["FruitOrdre_$i"], cette boucle devrait fonctionner si $i est incrémenté
    jusqu'à 10 (sinon, non) (mais remplace <BR \> par <br/> )*/
    $z++;
    echo "<BR \>FruitOrdre " .$z. " ". $_SESSION["FruitOrdre_$z"];
    }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par Denis Placé Voir le message
    Bonjour et merci grunk,
    Si tu me le conseilles, je vais m'atteler aux tableaux mais, pour ma gouverne, vois-tu mon erreur dans cet affichage ?
    Cordialement,
    Ton erreur est d'insister avec ton usine à gaz. Fais comme dit grunk, d'une part ce sera beaucoup plus simple et évolutif, et d'autre part cela te serviras par la suite. Surtout que les tableaux font partie du béaba de php, c'est le minimum requis, il faut en passer par là et acquérir au minimum les bases. Sinon tu perds ton temps inutilement.

  8. #8
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour laurentSc,

    Merci pour ton retour.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $i=0;
    while ($row = $SQL->fetch(PDO::FETCH_ASSOC))/*les valeurs retournées par ce fetch ne sont utilisées nulle part*/
    Si, elles le sont.
    Comme je l'avais précédemment à domi65, j'ai du code à la place de Je n'ai pas voulu détailler ce code pour ne pas détourner l'attention de l'essentiel.

    Citation Envoyé par laurentSc Voir le message
    remplace <BR \> par <br/>
    Ah... ok, effectivement.

  9. #9
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Bonjour ABCIWEB,

    Citation Envoyé par ABCIWEB Voir le message
    Ton erreur est d'insister avec ton usine à gaz. Tu perds ton temps inutilement.
    J'ai répondu à grunk en disant que j'allais utiliser les tableaux et c'est bien ce que je vais faire. Je suis un particulier qui essaye d'entretenir sons site perso et je recherche que la raison pour laquelle les lignes suivantes n'affichaient pas le contenu de mes variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            $z=0
            while ($z<10)
                {
                    $z++;
                    echo "<BR \>FruitOrdre " .$z. " ". $_SESSION["FruitOrdre_$z"];
                }
    sachant que $_SESSION["FruitOrdre_1"], $_SESSION["FruitOrdre_2"], etc existent.
    Merci pour ton message.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    2 hypothèses :

    - il manque session_start();.

    - ligne 1, il manque un point-virgule...

    Sinon, grunk et ABCIWEB ont raison de t'orienter vers les tableaux.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #11
    Membre habitué
    Homme Profil pro
    sans
    Inscrit en
    Mai 2007
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mai 2007
    Messages : 482
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par laurentSc Voir le message

    - ligne 1, il manque un point-virgule...

    - grunk et ABCIWEB ont raison de t'orienter vers les tableaux.
    C'est le cas sur les 2 points

    Encore merci.

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

Discussions similaires

  1. [C#] Tester existence d'une variable de session
    Par IDNoires dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/12/2004, 12h30
  2. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  3. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42
  4. Variable de session
    Par Sadneth dans le forum ASP
    Réponses: 6
    Dernier message: 14/11/2003, 11h12
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 16h04

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