corriger mon implode?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : corriger mon implode?

par choubix » 21 oct. 2007, 16:19

merci les gars, ca marche.

heureusement que c'est pas mon job la programmation...
je vais peut etre me mettre a tricotter ca sera plus simple ;)

par Tracker » 21 oct. 2007, 14:28

je vais essayer mais dans mon cas j'ai besoin que 01 , 02, 03 .. soient enregistres tels quel. et non pas 1, 2, 3 ...
C'est exactement ce que fait la fonction toString(...), appelée dans array_map(...)
Remplace ta fonction par celles que j'ai postées, si la partie SQL fonctionne tu auras ton résultat.


Tracker.

par Berzemus » 21 oct. 2007, 13:24

comme mon implode fonctionnait (...)
C'est drôle, moi c'est quand ça fonctionne pas que je vais voir :wink:

Ceci dit, il est plus utile de voir directement les détails de la fonction sur php.net et essayer de l'appliquer, que d'aller pêcher des exemples dans l'un ou l'autre script, dont la qualité varie énormément. Ainsi, tu aurais vu que pour des "raisons historiques", implode accepte les paramètres dans n'importe quel ordre, mais il est préférable des les utiliser dans le même ordre que explode. (une histoire de cohérence).

par choubix » 21 oct. 2007, 12:42

comme mon implode fonctionnait pas je suis passe sur le net et j'ai trouve des codes dans lesquels les parameters etaient inverses... (hehehe ;) )

par Truc » 21 oct. 2007, 12:35

au passage profite en pour regarder l'ordre des paramètres pour implode()

par choubix » 21 oct. 2007, 12:32

je vais essayer mais dans mon cas j'ai besoin que 01 , 02, 03 .. soient enregistres tels quel. et non pas 1, 2, 3 ...

par Tracker » 21 oct. 2007, 11:59

Alors pour ta fonction random_draw(), la fonction sort(...) convertisant le contenu en int...
Utilise la code suivant,
function toString($n) { return sprintf('%02d',$n); }
function random_draw() 
{
	$numbers = array(1,2,3,4,5,6,7,8,9,10,11,12);
	
	//Get 4 unique random keys from $numbers array.
	$rand_keys = array_rand($numbers, 4);
	sort($rand_keys, SORT_REGULAR);	
	return array_map('toString', $rand_keys);
}

Tracker.

par Berzemus » 21 oct. 2007, 11:55

Alors tu mets
return $rand_keys;
à la fin de ta fonction.

par choubix » 21 oct. 2007, 11:52

salut Berzemus,

mon tirage aleatoire s'affiche correctement a l'ecran lors de l'appel de la fonction.

ce que je souhaite faire c'est en recuperer la valeur et la stocker dans winning_grid

par Berzemus » 21 oct. 2007, 11:47

Je te conseilles d'utiliser de la doc php, un livre, quelque chôse qui te permette d'approfondir le sujet.

S'il n'y a pas de return dans une fonction, elle ne retournera aucune valeur, niet, nada. Rien. (sauf peut-être une erreur, à la limite). Tu ne peux rien en récuperer.

Print_r ne sert qu'a afficher le contenu du tableau, utile lors du deboguage, mais assez inutile par ailleurs.

Et ton implode ne marche pas puisque ta variable est vide.

par choubix » 21 oct. 2007, 11:45

tel que je le lis:

la fonction random draw fait un tirage aleatoire de 4 chiffres dans un tableau comporatant 12 valeurs

les valeurs tirees au sort sont ordonnees par ordre croissant et mises dans un tableau

puis on affiche ce tableau ( print_r() )


lors de l'appel: je recupere le tableau, je l'implode pour en faire une chaine de caracteres et je stocke dans la table correpondante.

par Tracker » 21 oct. 2007, 11:42

si j'utilise return au lieu de print_r() dans la fonction ca n'affiche plus rien sur la page ou je l'appelle...

par ailleurs l'erreur BAD Arguments elle est toujours la.
On va y aller pas à pas, alors ta fonction random_draw(...) doit faire quoi ?


Tracker

par choubix » 21 oct. 2007, 11:40

si j'utilise return au lieu de print_r() dans la fonction ca n'affiche plus rien sur la page ou je l'appelle...

par ailleurs l'erreur BAD Arguments elle est toujours la.

par Tracker » 21 oct. 2007, 11:36

Si tu veux que ta fonction retourne un tableau, il devrait y avoir un 'return' quelque part, non ?
[edit] Et puis arrête de mettre tes variables entre ", sans raison.

Tracker.

par choubix » 21 oct. 2007, 11:34

salut tracker, je n'avais pas mis le code de la fonction en entier.

j'ai edite mon message pecedent pour que ca soit visible.
l'erreur est de type "bad argument" a la ligne

Code : Tout sélectionner

$result = implode($nums, "");
ca m'empeche d'executer ma requete d'insertion correctement :(