Passage tableau d'instance

Sk8yo
Messages postés
27
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
16 octobre 2006
- 26 août 2004 à 19:42
korrox
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004
- 27 août 2004 à 03:01
sk8yo

bonlour a tous,
voila mon pbm, en fait dans une page php je rempli un tableau dont chacune des cases est une instance de classe et j aimerai le faire passer (via n importe quel moyen) a une autre page .

voila j ai essayer par l url et par variable de session mais ça ne marche pas ou je ne m y prend pas de la bonne façon.

j utilise la version 4.3.3 de php

merci

4 réponses

blinkseb
Messages postés
57
Date d'inscription
mercredi 25 août 2004
Statut
Membre
Dernière intervention
18 avril 2005

26 août 2004 à 20:54
J'ai un moyen mais ce n'est pas forcément le meilleur :


session_start();

$_SESSION["nbr_de_classe"] = $nbr_de_classe;

for ($i = 0; $i < $nbr_de_classe; $i++)
{

$_SESSION["classe" . $i] = $classes[$i];

}



En supposant bien sur qie $nbr_de_classe contienne le nombre de classes, et que $classes soit un array des classes.

Ensuite pour lire suffit de faire


session_start();

for ($i = 0; $i < $_SESSION["nbr_de_classe"]; $i++)
{

echo("Classe n°" . $i . " = " . $_SESSION["classe" . $i]);

}



Tu peux bien sur utiliser isset() pour vérifier que les variables de sessions existent bien !

bLiNkSeB - Anciennement sebastienbro
0
korrox
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

27 août 2004 à 02:56
blinkseb, ton code ne fonctionnera pas car on enregistre pas une simple variable dans la session mais un tableau. Donc avant d'enregistrer le tableau il faut d'abors le lineariser avec la fonction serialize() et le délineariser avec la fonction unserialize() pour récupérer le tableau.

Voici les codes d'enregistrement et de récuperation de ton tableau d'instance (on nomme $inst ton tableau d'instance) dans une session:

//Enregistrement
//on ouvre la session
session_start();
//on inclut la classe (remplace '...' par le nom de ta classe :p )
include( "..." );
//traitement pour enregistrer tes instances dans le tableau $inst
...
//Enregistrement du tableau $inst dans la session
$_SESSION["inst"] = serialize($inst);


//Récuperation
//on ouvre la session
session_start();
//on inclut la classe
include( "..." );
//On récupére le tableau $inst de la session
$inst = unserialize($_SESSION["inst"]);


Enfin pour récupérer le nombre d'instance dans ton tableau utilse count() comme ceci:
$nbr_instance = count($int);


Voila bon courage!

Une bonne programmation c'est avant tout une bonne analyse. :)
0
blinkseb
Messages postés
57
Date d'inscription
mercredi 25 août 2004
Statut
Membre
Dernière intervention
18 avril 2005

27 août 2004 à 03:00
Oui justement, ne connaissant pas cette fonction, j'ai mis chaque éléments du tableau dans une nouvelle variable de session.

On aura donc :

$_POST["nbr_de_classe"] = 2;
$_POST["classe0"] = xxx;
$_POST["classe1"] = yyy;
$_POST["classe2"] = zzz;

Mais il est vrait que ton code prend beaucoup moins de place :)

Merci pour ces fonctions, ça peut toujours être utile :)

bLiNkSeB - Anciennement sebastienbro
0
korrox
Messages postés
60
Date d'inscription
mercredi 9 juillet 2003
Statut
Membre
Dernière intervention
3 septembre 2004

27 août 2004 à 03:01
blinkseb, désolé ton code fonctionnera j'ai mal regardé désolé! Mais le mieux c'est tout de même d'utilser la linearisation! Puisqu'on enregistre en une seule fois au lieu de n enregistrement comme tu fait.

Une bonne programmation c'est avant tout une bonne analyse. :)
0