Je me suis lancé dans la programmation d'une interface d'administration pour mon site internet mais je me heurte, sans trouver de solution, à un problème qui, apriori, lorsque je parcours différent forums et/ou sites, disent que la fonction serialize et unserialize fonctionnent à merveille et ne posent jamais de problèmes.
Hors, dans mon cas, il en est autrement!
Je m'explique. Tout d'abord, dans une première page, je choisis, dans une liste checkbox, une série de données que je souhaiterais voir afficher dans une autre page. J'effectue une serialisation du tableau que me renvoie le formulaire avec les checkbox. J'enregistre ce tableau dans un champ dans ma base donnée MySQL afin de pouvoir la récupérer quand je le souhaite sans devoir avoir recours à des variables de session.
Le tableau sérialisé du choix de mon formulaire avec des checkbox est bien enregistré dans ma base de donnée.
Cependant, c'est au moment de désérialiser ce tableau provenant de ma base de donnée que les problèmes se posent.
En effet, au moment d'utiliser unserialize sur mon tableau, il m'indique:
Code : Tout sélectionner
Warning: unserialize() expects parameter 1 to be stringConcrètement, dans le fichier qui enregistre le tableau avec le résultat du formulaire avec les checkbox, j'ai:
$choice = $_POST["choice"]; /*La variable choice contient l'array des checkbox sélectionnées*/
$bd_choix=serialize($choice);
mysql_query("UPDATE affichage SET affichage_cours=$bd_choix WHERE affichage_cours_id=1");
Ici, aucun problème et si je vais consulter le champ en question dans phpMyAdmin, j'ai bien un tableau sérialisé qui se présente, par exemple, sous cette forme:
Code : Tout sélectionner
a:2:{i:0;s:2:"22";i:1;s:2:"32";}$selection="SELECT affichage_cours FROM affichage WHERE affichage_cours_id=1";
$resultat=mysql_query($selection); /*$resultat me renvoie bien le tableau, par exemple, enregistré plus haut*/
$data=unserialize($resultat);
Et ici, rien à faire, unserialize me renvoie non-stop Code : Tout sélectionner
Warning: unserialize() expects parameter 1 to be stringMerci d'avance pour votre aide