Page 1 sur 1

sur les variables multiples et les sessions?

Posté : 29 janv. 2006, 18:29
par YVES
Bonjour,

Je voulais savoir s'il était possible de regrouper (globaliser?) x variables au sein d'une meme et unique session?
(j'en ai actuellement 25 et ce chiffre devrait monter à au moins 50 !)
A l'heure actuelle cela fonctionne tres bien mais cela n'est peut-etre pas un code "propre" etc...
if ($req && mysql_num_rows($req) >0) {
   $data = mysql_fetch_assoc($req);
   if ($data) {
            //Lire et stocker les infos  dans la session
           $_SESSION['variable1'] = $data["variable1"];
           $_SESSION['variable2'] = $data["variable2"];
           $_SESSION['variable3'] = $data["variable3"];
           $_SESSION['variable4'] = $data["variable4"];
etc....
ensuite sur une autre page:
 <? echo $_SESSION['variable1'] ?>
<? echo $_SESSION['variable2'] ?>
<? echo $_SESSION['variable3'] ?>
etc...
Pourrais-je faire 1 truc du genre:
        
 $_SESSION['variables'] = $data["variable1"] , $data["variable2"] , $data["variable3"];  
puis sur la page membre:
<? echo $_SESSION['variable2'] ?>
//   (par exemple)

Posté : 29 janv. 2006, 18:58
par Truc
tout dépend du format d'affichage que tu veux après.

Par exemple:
$_SESSION['variables'] = $data["variable1"] .",". $data["variable2"].",". $data["variable3"];

echo $_SESSION['variables']; // va efficher le contenu des variables séparées par une virgule sur une meme ligne, tu peut aussi y inserer des saut de lignes

$_SESSION['variables'] = $data["variable1"] .",<br />". $data["variable2"].",<br />". $data["variable3"];

Posté : 29 janv. 2006, 22:17
par YVES
Donc, je peux réunir toutes mes variables dans une meme session, mais puis je ensuite à un endroit précis sur une page suivante n'afficher que une variable ?

Posté : 29 janv. 2006, 22:18
par YVES
(par exemple QUE la "variable 3")?

Posté : 29 janv. 2006, 22:23
par Truc
Non, pas directement.

Soit tu passes par un explode() sur la virgule (dans ce cas)

soit tu crée une variable de session à double dimension:
if ($req && mysql_num_rows($req) >0) 
{
   $i=0;
   $data = mysql_fetch_assoc($req);
   if ($data) 
   {
            //Lire et stocker les infos  dans la session
           $_SESSION[$i]['variable1'] = $data["variable1"];
           $_SESSION[$i]['variable2'] = $data["variable2"];
           $_SESSION[$i]['variable3'] = $data["variable3"];
           $_SESSION[$i]['variable4'] = $data["variable4"];
           $i++;
etc....
echo [1]['variable3']; // affichera la valeur du 2eme passage dans la boucle pour le champ variable3
dans ce cas tu peux afficher une certaine varaible donnée mais pour toutes les afficher tu seras obligé de passer par une boucle.

Posté : 29 janv. 2006, 22:26
par patami
tu pourrais stocker tes différentes valeurs dans un array et passer l'array en sessions :)

sinon en procédant avec la manière de la chaîne de caractères tu peux utiliser un caractère spécial pour séparer les valeurs de tes différentes variables puis pour les récupérer séparées utiliser la fonction explode() qui renverra un array (cfr la doc) ;)

edit : grillé :p