Print_r et recuperation ??

Print_r et recuperation ?? - PHP - Programmation

Marsh Posté le 07-11-2003 à 09:59:09    

Bonjour,
 
J'ai un tableau que je converti en text pour la stocker dans une table SQL, mais je la recupere au format text, et j'aimerais l'utiliser en temps qu'array :
 

Code :
  1. $a= array([0]=>'Oui', [1]=>'Non');
  2. $stock = print_r($a,TRUE);


 
Donc maintenant stock = "array([0]=>'Oui', [1]=>'Non')";
je met la variable sotck dans une table SQL :
 

Code :
  1. mysql_query("INSERT INTO table VALUES ('$stock')" );


 
je recupere cette valeur dans une autre page :
 

Code :
  1. $result=mysql_query("SELECT * FROM table" );
  2. while($row=mysql_fetch_row($result){
  3. echo "{$row[0][0]} <br>";
  4. echo "{$row[0][1]} <br>";
  5. }


sa devrait m'afficher :
 
Oui
Non
 
Mais le probleme c'est que $row[0] n'est pas considerer comme un array mais comme une chaine de caractères.
 
Comment transformer une chaine de caractères du type : "array([0]=>'oui')" en un array ?
 
Merci pour votre aide
 :hello:


Message édité par bozocarzu le 07-11-2003 à 10:01:25
Reply

Marsh Posté le 07-11-2003 à 09:59:09   

Reply

Marsh Posté le 07-11-2003 à 13:04:19    

tu as essayé la fonction eval()?

Reply

Marsh Posté le 07-11-2003 à 13:16:36    

Oui j'ai essayer avec eval, mais sa me fais toujouts une erreur php, donc c'est peut etre que je sais pas bien m'en servir:
 
Moi je fais :
 
eval("\$row[0]=\"$row[0]\";" );
 
cf manuel php, mais j'ai un doute sur l'utilisation de la fonction eval, alors si tu peut m'eclairer ?!?

Reply

Marsh Posté le 07-11-2003 à 17:55:37    

il existe une ffonctoin pour tranformer les objects en texte et une autre pour faire la transfformation inverse. Elle marche peut être aussi avec les tableaux. C'est à vérifier. ;)
Par contre, je me souvient plus leur nom. :(

Reply

Marsh Posté le 07-11-2003 à 18:00:29    

omega2 a écrit :

il existe une ffonctoin pour tranformer les objects en texte et une autre pour faire la transfformation inverse. Elle marche peut être aussi avec les tableaux. C'est à vérifier. ;)
Par contre, je me souvient plus leur nom. :(

www.php.net/serialize
www.php.net/unserialize

Reply

Marsh Posté le 08-11-2003 à 15:53:41    

Merci 'les deux fonction marche plutot bien :
 

Code :
  1. $a= array([0]=>'Oui', [1]=>'Non');
  2. $stock = serialize($a);
  3. mysql_query("INSERT INTO table VALUES ('$stock')" );
  4. $result=mysql_query("SELECT * FROM table" );
  5. while($row=mysql_fetch_row($result){
  6. $row[0]=unserialize($row[0]);
  7. echo "{$row[0][0]} <br>";
  8. echo "{$row[0][1]} <br>";
  9. }


Message édité par bozocarzu le 08-11-2003 à 15:54:04
Reply

Marsh Posté le 30-01-2009 à 16:02:30    

ok -- mais question théorique, est-il possible de stocker le résultat sql dans un array, puis un fichier ?
$x=mysql_query("SELECT ***" );
print_r(unserialize($x));// ne donne rien
 
    l'idéal serait d'avoir un array([0]=>array(champ=>valeur)) etc..
   cela est-il fantaisiste ?


Message édité par grosbin le 30-01-2009 à 16:03:51

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 31-01-2009 à 22:04:35    

Contrairement à d'autres techniques de sérialization (par exemple JSON), la sérialization PHP ne produit pas du code directement interprétable par PHP. PHP ne dispose pas non plus d'une méthode .toSource comme en Javascript (enfin uniquement sur des vrais browsers).
 
Il est tout à fait possible de sérializer à peu près n'importe quelle donnée en PHP, y compris le résultat d'une requête.
Par contre, un pointeur de rowset est évidemment non sérializable (cela n'aurait d'ailleurs aucun sens).
 
En résumé:

Code :
  1. serialize(mysql_query('SELECT * FROM table'));


ne donnera rien (mysql_query renvoie un pointeur sur le rowset généré).
Par contre:

Code :
  1. $a = array();
  2. $q = mysql_query('SELECT * FROM table');
  3. while($v = mysql_fetch_array($q))
  4. {
  5.  $a[] = $v;
  6. }
  7. $t = serialize($a);


fonctionnera parfaitement et on peut bien sûr stoquer $t dans un fichier si on veut.


---------------
http://www.gabouel.com
Reply

Marsh Posté le 02-02-2009 à 15:32:19    

gabouel a écrit :

Il est tout à fait possible de sérializer à peu près n'importe quelle donnée en PHP, y compris le résultat d'une requête.

Et juste après avoir dit ça, tu nous montres qu'on ne peut pas sérialiser le résultat d'une requête mais qu'on peut copier dans un tableau les données retournée par la requête et sérialiser ce tableau. [:airforceone]

Reply

Marsh Posté le 02-02-2009 à 16:04:13    

ça sert quasiment à pas grand chose ..


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 02-02-2009 à 16:04:13   

Reply

Marsh Posté le 03-02-2009 à 17:58:27    

est-il possible de stocker le résultat sql dans un array, puis un fichier ?
 
bin tu peux le faire a la mano :)
while ( $row = mysql_fetch_assoc($res)) {
     foreach($row as $key => $val) {
         //ecrire dans le fichier
     }
}


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 03-02-2009 à 18:04:24    

Hum ouai, cherche du côté de fopen() fwrite()


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed