Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1225 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Serialize + Split

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Serialize + Split

n°464543
coconutes4
Posté le 22-07-2003 à 12:20:53  profilanswer
 

Bonjour je code un gestionnaire d'article et afin d'améliorer la mise en page j'ai plusieurs tableau(php).
Dans mon formulaire d'ajout:
j'ajoute:

Code :
  1. $nbrpara = count($titre);
  2.            for($i=0 ;$i<$nbrpara; $i++)
  3.             {
  4. $texte[$i] = "$titre[$i] - $paragraphe[$i] - $image[$i]";
  5.             }
  6. $textedb = serialize($texte);


$titre,$paragraphe et image sont liées par $i.
Tout ceic est bien dans ma base de donnée.
Mais maintenant j'aimerai le dechiffré:

Code :
  1. texte = unserialize($data[texte]);
  2. $nbr=count($texte);
  3. echo $nbr;
  4. for($i=0;$i<$nbr;$i++)
  5. {
  6. list($titren[$i],$paragraphe[$i],$image[$i]) = split("-",$texte[$i]);
  7. }
  8. $nbrpara = count($titren);
  9. for($i=0 ;$i<$nbrpara; $i++)
  10. {
  11. echo "$image[$i] $titre[$i] paragraphe[$i]
  12. }


 
Malheureusement le dechiffrage ne m'affiche rien...
QQ peut m'aider ?
merci d'avance...

mood
Publicité
Posté le 22-07-2003 à 12:20:53  profilanswer
 

n°464544
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 22-07-2003 à 12:21:48  profilanswer
 

$texte =unserialize(...) non ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°464561
coconutes4
Posté le 22-07-2003 à 12:35:22  profilanswer
 

nan c'est jsute un erreure dan mon copier/coller:(

n°464576
omega2
Posté le 22-07-2003 à 12:44:05  profilanswer
 

coconutes4 a écrit :


Code :
  1. $nbrpara = count($titre);
  2.            for($i=0 ;$i<$nbrpara; $i++)
  3.             {
  4. $texte[$i] = "$titre[$i] - $paragraphe[$i] - $image[$i]";
  5.             }
  6. $textedb = serialize($texte);



ton code est équivalent à :

Code :
  1. $nbrpara = count($titre);
  2.            for($i=0 ;$i<$nbrpara; $i++)
  3.             {
  4. $texte[$i] = $titre."[".$i."] - ".$paragraphe."[".$i."] - ".$image."[".$i."]";
  5.             }
  6. $textedb = serialize($texte);


J'espères que tu vois un peu mieux la différence entre ce que tu t'étais imaginé et ce qu'il ce passe vraiment. ;)

n°464586
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-07-2003 à 13:07:56  profilanswer
 

:pfff: tsss tsss tsss ... Tiens omega un petit test pour chez toi:

Code :
  1. $myArray = array('a', 'b', 'c', 'd', 'e', 'f' );
  2. $myArray2 = array(1, 2, 3, 4, 5, 6 );
  3. for($i=0 ;$i<5; $i++)
  4. {
  5.   $texte = "$myArray[$i] - $myArray2[$i]";
  6.   print $texte;
  7. }


Tu obtiens quoi?

n°464605
omega2
Posté le 22-07-2003 à 13:33:44  profilanswer
 

Anapajari a écrit :

:pfff: tsss tsss tsss ... Tiens omega un petit test pour chez toi:

Code :
  1. $myArray = array('a', 'b', 'c', 'd', 'e', 'f' );
  2. $myArray2 = array(1, 2, 3, 4, 5, 6 );
  3. for($i=0 ;$i<5; $i++)
  4. {
  5.   $texte = "$myArray[$i] - $myArray2[$i]";
  6.   print $texte;
  7. }


Tu obtiens quoi?

Ha oui, autant pour moi, a force de mettre mes variables en dehors des chaines de caractères, j'en avais oublié que pour les tableaux, ca marchait aussi comme ça.

n°465227
coconutes4
Posté le 22-07-2003 à 19:53:38  profilanswer
 

donc ?;)

n°465452
anapajari
s/travail/glanding on hfr/gs;
Posté le 23-07-2003 à 09:48:59  profilanswer
 

Bin dans la deuxieme partie de ton code il manque déjà un $ devant le texte mais je pense que c'est une faute de frappe .
 
Après tu te mélanges un peu les pieds avec $titre puisqu'un fois tu l'appeles $titre et juste après $titren.
 
Quoi qu'il en soit mets des prints un peu partout et regardes à partir d'ou ça marche pas  :D

n°465483
Lord II
PIB2000
Posté le 23-07-2003 à 10:04:21  profilanswer
 

Vérifis tes variables : $titren qui devient $titre un peu plus loin, c'est assez louche
 
Pour un cas si simple, à savoir découper une chaine sur le caractère "-", ne serait-il pas plus imple d'utiliser explode en lieu et place de split qui utilise les expressions régulières.
 

n°466419
coconutes4
Posté le 24-07-2003 à 09:11:34  profilanswer
 

Je vais voir pour explode...
Pour titren -> titre erreur de frappe encore

mood
Publicité
Posté le 24-07-2003 à 09:11:34  profilanswer
 

n°466447
coconutes4
Posté le 24-07-2003 à 09:44:28  profilanswer
 

Voici e code contenue dans ma db

Code :
  1. a:2:{i:0;s:12:"Titre para 1";i:1;s:12:"titre para 2";} - a:2:{i:0;s:12:"text epara 1";i:1;s:12:"texte para 2";} - a:2:{i:0;s:7:"image 1";i:1;s:7:"image 2";}


 
mon code pour decrypté:

Code :
  1. list($titre[$i],$paragraphe[$i],$image[$i]) = explode("-",$data[texte]);
  2. $titre = unserialize($titre);
  3. $paragraphe = unserialize($paragraphe);
  4. $image = unserialize($image);
  5. $nbrpara = count($titre);
  6. for($i=0 ;$i<$nbrpara; $i++)
  7. {
  8. echo $titre[$i] $image[$i] $paragraphe[$i];
  9. }


malheureusement ce code ne m'affiche rien:(

n°466455
Lord II
PIB2000
Posté le 24-07-2003 à 10:11:13  profilanswer
 

Attention a bien effectuer les étapes dans l'ordre inverse de ce que tu as fait pour enregistrer dans la base.
 
Il serait bon que tu montres également le code d'enregistrement.
 
D'après le code que tu as montré en début de topic, je vois que concatène les champs puis que tu serialize. Donc, il faut que tu unserialize puis que tu deconcatène grace à explode.
 
Moi je ferais ca comme ca :
 

Code :
  1. $texte=unserialize($data["texte"]);
  2. for($i=0;$i<sizeof($texte);$i++)
  3. {
  4. list($titre,$paragraphe,$image)= explode("-",$texte[$i]);
  5. echo "$titre $paragraphe $image";
  6. }


Message édité par Lord II le 24-07-2003 à 10:15:21

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°466742
coconutes4
Posté le 24-07-2003 à 12:59:43  profilanswer
 

Code :
  1. $titre = serialize($titre);
  2. $paragraphe = serialize($paragraphe);
  3. $image = serialize($image);
  4. $texte = "$titre - $paragraphe - $image";


Mon code: $texte est envoyé dans la db

n°466746
Lord II
PIB2000
Posté le 24-07-2003 à 13:04:08  profilanswer
 

coconutes4 a écrit :

Code :
  1. $titre = serialize($titre);
  2. $paragraphe = serialize($paragraphe);
  3. $image = serialize($image);
  4. $texte = "$titre - $paragraphe - $image";


Mon code: $texte est envoyé dans la db


 
Dans ce cas, tu fais :
 

Code :
  1. $texte=explode("-",$data["texte"]);
  2. $titre=unserialize($texte[0]);
  3. $paragraphe=unserialize($texte[1]);
  4. $image=unserialize($texte[2]);
  5. for($i=0 ;$i<sizeof($titre); $i++)
  6. {
  7. echo $titre[$i]." " .$image[$i] ." " .$paragraphe[$i];
  8. }


Message édité par Lord II le 24-07-2003 à 13:07:47

---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°466749
Lord II
PIB2000
Posté le 24-07-2003 à 13:14:04  profilanswer
 

Je viens de voir une petite faute qui a son importance
 

Code :
  1. $texte="$titre-$paragraphe-$image";

 
 
Il ne faut pas qu'il y ait d'espace ou alors le transformateur devient " - ". Si les espaces perdurent après l'explode, alors la fonction serialize a l'air assez perdue.


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°467160
coconutes4
Posté le 24-07-2003 à 18:17:48  profilanswer
 

:pfff:  :pfff:  
merci:D :D  :D  :D

n°467175
coconutes4
Posté le 24-07-2003 à 18:47:44  profilanswer
 

J'ai un gros probleme des que je met un " dans ma chaine plus rien ne marche :(``\ :??:  :??:

n°467204
Lord II
PIB2000
Posté le 24-07-2003 à 20:00:49  profilanswer
 

Il faut essayer de voir apres qu'elle instructions plus rien ne marche. Cela va permettre de trouver le probleme et d'y remedier ( en encodant par exemple)


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°467271
coconutes4
Posté le 24-07-2003 à 22:01:40  profilanswer
 

j'ai fait un sizeof($titre) et je retrouve 1 a chaque fois quand un de mes champs contient "

n°467279
omega2
Posté le 24-07-2003 à 22:16:49  profilanswer
 

coconutes4 a écrit :

j'ai fait un sizeof($titre) et je retrouve 1 a chaque fois quand un de mes champs contient "  

Fait un echo entre chaque étape, avant la première et après la dernière par ce que c'est pas en regardant que le résultat final que tu pouras ccomprendre a quel niveau ca plante.

n°467781
coconutes4
Posté le 25-07-2003 à 15:27:41  profilanswer
 

j'ai fait un

Code :
  1. $texte=explode("-",$data["texte"]);
  2. sizeof etc...


et ju'ai trouvé 4...
c'est dans l'unserialize que ca merdeuh:(

n°467791
omega2
Posté le 25-07-2003 à 15:34:32  profilanswer
 

coconutes4 a écrit :

j'ai fait un

Code :
  1. $texte=explode("-",$data["texte"]);
  2. sizeof etc...


et ju'ai trouvé 4...
c'est dans l'unserialize que ca merdeuh:(

T'en avais pas trois au départ? ;)

n°467981
coconutes4
Posté le 25-07-2003 à 17:23:03  profilanswer
 

Oué si tu veut lol mais bon j'ai fait plusieur tests:p

n°467998
Mara's dad
Yes I can !
Posté le 25-07-2003 à 17:41:21  profilanswer
 

? ? ? Pourquoi faire simple quand on peu faire compliqué ? ? ?
 

Code :
  1. $texte[0] = $titre;
  2. $texte[1] = $paragraphe;
  3. $texte[2] = $image";
  4. $textedb = serialize($texte);


 

Code :
  1. $texte = unserialize($data[texte]);
  2. $titre = $texte[0];
  3. $paragraphe = $texte[1];
  4. $image = $texte[2]";
  5. for($i=0 ;$i<$nbrpara; $i++)
  6. {
  7.     echo "$image[$i] $titre[$i] paragraphe[$i]";
  8. }


Message édité par Mara's dad le 25-07-2003 à 17:42:46

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°468401
coconutes4
Posté le 26-07-2003 à 12:30:08  profilanswer
 

Oué pas bête lol:)
Enfin j'ai toujours le même probleme : impossible d'unserializer ma chaine quand elle cotient " ou ' ...

n°470550
coconutes4
Posté le 29-07-2003 à 09:54:40  profilanswer
 

qu'lqu'un peut m'aider ?...:)

n°470612
Mara's dad
Yes I can !
Posté le 29-07-2003 à 10:30:09  profilanswer
 

C'est quoi ton problème avec les " et ' !

Code :
  1. <?php
  2. $titre[0] = "En route pour les étoiles !";
  3. $paragraphe[0] = "C'est cool les \"Etoiles\"";
  4. $image[0] = "stars.jpg";
  5. $titre[1] = "A dada sur ma moto.";
  6. $paragraphe[1] = "Mara : 'Moi aussi ze veux monter sur la moto de papa'!";
  7. $image[1] = "moto.jpg";
  8. $texte[0] = $titre;
  9. $texte[1] = $paragraphe;
  10. $texte[2] = $image;
  11.  
  12. $textedb = serialize($texte);
  13.  
  14. $texte = unserialize($textedb);
  15.  
  16. $titre = $texte[0];
  17. $paragraphe = $texte[1];
  18. $image = $texte[2];
  19.  
  20. for($i=0 ;$i<count($titre); $i++)
  21. {
  22. echo "$image[$i]<br>$titre[$i]<br>$paragraphe[$i]<hr>";
  23. }
  24. ?>


 
Si c'est des " et ' qui viennent de formulaire, ben essaye la fonction qui va bien :
 
http://fr.php.net/manual/fr/function.addslashes.php


Message édité par Mara's dad le 29-07-2003 à 10:30:36

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Serialize + Split

 

Sujets relatifs
[Perl] Pb avec un splitASP | SPLIT | Ou est l'erreur ? :(
Split d'une chaine en fonction du nombre de caractere[PHP] fonction split et exp reg
fonction équivalente au 'split' de perl? [pb regexp]serialize, unserialize et programmation objet
fonction split en VB/vbscript bizzarerie!![PHP] séparer un texte avec preg_split() help !
split çà marche comment ?[VBA]Parcourir les caractères d'une cellule Excel et pb avec split
Plus de sujets relatifs à : Serialize + Split


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR