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
Rejoignez-nous