Page 1 sur 1

Attendre la fin d'une fonction

Posté : 01 mars 2009, 16:08
par saebakun
Bonjour,

j'ai fait un boucle pour mettre à jours des données de ce type:

Code : Tout sélectionner

$sql=sql('select id_travaux from travaux where en_cours=1'); for($i=0; $i<count($sql); $i++){ $id=$sql[$i]['id_travaux']; traite_travaux($id); } function traite_travaux(){ .... }

Mais le problème c'est que ma boucle lance tout les traite_travaux($id) d'à filé.

Mais je voudrais qu'il continue la boucle qu'une fois que la fonction traite_travaux ait traité le $id précèdent.

Voilà est-ce possible?

Merci :)

Posté : 01 mars 2009, 16:14
par Ryle
PHP ne lance pas de processus en parallèle... ton problème doit venir d'ailleurs, car php ne passera pas à l'itération suivante tant que le traitement de ta fonction n'est pas terminé :)

Posté : 01 mars 2009, 16:16
par saebakun
ok je crois que je viens de comprendre.

En fait voilà:

Code : Tout sélectionner

$sql=sql('select id_travaux from travaux where en_cours=1'); for($i=0; $i<count($sql); $i++){ $id=$sql[$i]['id_travaux']; traite_travaux($id); } function traite_travaux($id){ execute_definitif($id); } function execute_definitif($id){ ...... }
Du coup il lance plein de fois traite_travaux alors que execute_definitif du précèdent n'est pas encore fini...

Y'a moyen de contourner ce problème ou pas?


J'ai contourné le problème en mettant le code de la deuxième fonction appelée dans la première

merci