Probleme de unserialize mise a jour de donnée serialize

ViPHP
AB
ViPHP | 5818 Messages

24 sept. 2011, 22:27

Et toi AB ne sois pas jaloux de moi. j'essaie toujours de comprendre mais je dois terminer le site dans 10 jours, alors ça ne me laisse pas beaucoup de temps. Mais ne t’inquiète pas que j'ai compris.
Il va couler encore pas mal d'eau sous les ponts avant que je sois "jaloux" de ton code :wink:

- On peut savoir pourquoi tu désérialise deux fois le même tableau ( unserialize($row["friends"]); ) ?

- Et puis pour trouver si une valeur appartient à un tableau on peut utiliser in_array()

- Par ailleurs si uid est un identifiant unique (ce qui semble être le cas) alors pas besoin de faire un while pour récupérer plusieurs lignes puisque tu n'en cherche qu'une.

- Et enfin dernière chose, pourquoi gardes-tu les echo dans ton code, dans ce cas de figure cela ne sert qu'en phase de développement pour visualiser les valeurs.

Eléphanteau du PHP | 45 Messages

25 sept. 2011, 22:10

C'est vrais j'ai désérialiser deux fois le tableau, j’aurais pu faire autrement (quand j'ai le temps, je le fais) il suffit de donner la meme valeur a friend_No a friend_old. Propose moi ta solution avec in_array().
uid est un identifiant unique. propose moi ta solution sans faire while.
je garde les echo pour visualiser les valeurs car le site est en phase de développement.
Merci.

ViPHP
AB
ViPHP | 5818 Messages

26 sept. 2011, 01:59

... Propose moi ta solution avec in_array().
... uid est un identifiant unique. propose moi ta solution sans faire while.
Merci.
Tu pourrais pas un peu chercher non ?

Je t'ai donné les indications, maintenant c'est à toi de faire des propositions !

Ta première boucle
foreach($friend_No as $friend_No => $friend_Nos_value)
     {
                if($array_No == $friend_Nos_value)  {}
     }
sert à tester si $array_No fait partie du tableau $friend_No et je te dis que tu pourrais utiliser la fonction in_array à la place. L'idée ne t'es pas venue te taper "in_array" dans google ? parce qu'en première ligne tu aurais trouvé ce lien http://php.net/manual/fr/function.in-array.php

Concernant le fait de ne pas faire de while, tu n'aurais pas une idée ?

Et puis
C'est vrais j'ai désérialiser deux fois le tableau, j’aurais pu faire autrement (quand j'ai le temps, je le fais)
...sous entends que quand tu as le temps tu vas à l'essentiel, mais si tu n'as pas le temps tu fais des détours pour compliquer les choses ???

Quant aux noms que tu donne à tes variables tu fais tout pour t'embrouiller : quand tu désérialise le tableau de la colonne "friends" pourquoi appelles-tu la variable $friend_No ?

cette partie de ton code devrait être quelque chose comme
//... requête
$friends = unserialize($row["friends"]);

if (in_array(...,...))// remplacer les points par les bonnes valeurs
{
      $friend_New = array();
      foreach($friends as  $value)      
      {
             if($value != $array_No)  
             {
                   $friend_New[] = $value;
             }
      }

      $friends = serialize($friend_New);
      $query2 ="UPDATE users SET friends = '".$friends."' WHERE uid = $uid" ;
      $result2=mysql_query($query2)or die(mysql_error()); 

}
On est pas là pour faire ton code à ta place, et si tu n'as pas le temps d'apprendre alors trouves-toi une autre occupation :wink:

Mammouth du PHP | 19672 Messages

26 sept. 2011, 03:57

Zebu, je t'ai déjà fait une observation du même ordre sur un autre post, traitant exactement le même sujet : tu ne lis les réponses qu'en diagonale, tu ne réponds pas aux questions et tu ne cherches pas : en clair, tu as l'air d'attendre qu'un gogo fasse le code à ta place. Je n'ai rien dit quand tu as ouvert ce nouveau sujet, mais garde à l'esprit que tu vas rapidement te faire repérer et surtout cataloguer comme un profiteur opportuniste. On aime pas beaucoup ça ici, ce n'est pas l'esprit de ce forum.

Ici, c'est un forum d'entraide et ceux qui sont un peu expérimentés aident volontiers et gracieusement ceux qui apprennent et butent sur des problèmes. Mais il ne faudrait pas pour autant penser qu'on est stupides. Autant ça peut être motivant et gratifiant de voir un débutant progresser, écouter, faire des efforts et réussir petit à petit, autant c'est très énervant de voir certains comportements arrogants de gens qui de toute évidences prennent sans la moindre intention de rendre quoi que ce soit de toutes manières. Personne ici ne te doit rien et tes délais n'intéressent personne. Si tu a pris des engagements que tu sais n'être pas en mesure de tenir, il ne faut t'en prendre qu'à toi-même et assumer tes propres choix. Ça implique aussi d'assumer le fait qu'on ne te dit pas forcément n'importe quoi et que si tu prenais la peine de lire et relire si nécessaire les réponses qui te sont faites puis y réfléchir un tout petit peu avant de te précipiter pour poser une nouvelle question, peut-être bien que tu comprendrais pourquoi on t'indique certains éléments ou pourquoi on te poses certaines questions et tu apprendrais bien davantage de choses. Si tu ne veux pas comprendre ça, personne ne t'y forcera, il te restera toujours la solution de faire appel à un professionnel qui se fera un plaisir de te faire ton code... moyennant finance ça va de soi, mais ça, c'est ton problème. :evil:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 45 Messages

26 sept. 2011, 11:33

Il est vrais que j'ai besoin d'un développeur, certes je suis seul et je cherche a communiquer au sujet de mon site internet et de ma programmation pour connaitre la marche à suivre en cas de soucis. Il est vrais que je suis embêté par les délais de livraison, je vais donc augmenter ce délai pour avoir plus de temps et travailler correctement.