While dans while

Fermé
thomas - 11 oct. 2012 à 23:26
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 12 oct. 2012 à 13:34
Bonjour,
Voila je développe un outil de gestion et j'ai absolument besoin d'intégrer un while dans un while mais le soucis et que mon premier while fait son boulot jusqu'au second while, mais le second ne fait pas ce qu'il a a faire, et qui plus est, le while principale ne finit meme pas sa boucle !

Voici mon code :
$requete_of = "select distinct C.grpcommande, C.date_enregistrement, O.date_debut, O.date_fin, O.temps_total, M.cout, O.idoperation from commande C, machine M, operation O where C.idcommande=O.idcommande and M.idmachine=O.idmachine and etat='terminer' group by grpcommande order by date_enregistrement;";
$result_requete_of = mysql_query($requete_of) or die ('impossible dexecuter la requete OF.');

while ($data = mysql_fetch_array($result_requete_of)){
$idoperation = $data['idoperation'];
$grpcommande = $data['grpcommande'];
echo "<tr><td>".$data['grpcommande']."</td>";
echo "<td>".$data['date_enregistrement']."</td>";
echo "<td>".$data['date_debut']."</td>";
$requete_cout = "select temps_total from commande C, operation O where C.idcommande=O.idcommande and grpcommande='$grpcommande'; ";
$result_requete_cout = mysql_query($requete_cout) or die ('impossible dexecuter la requete cout.');
while ($data = mysql_fetch_array($result_requete_cout)){
$temps = $data['temps_total'];
$temps_passer=0;
$temps_passer = $temps + $temps_passer;
}
echo "<td align='center'>".$temps_passer." €</td>";


J'ai allégé le code pour vous le montré, le princpale est la.
Le temps passer m'est bien affiché par mysql mais sous php, le cacul ne se fait pas et si jamais, je demande a mon while principale de continuer de récuperer des valeurs (exemple : $grpcommande = $data['grpcommande']; mis après le second while) la boucle ne le fait pas.
Une idée de ce dont sa peut venir ?
D'avance merci de m'avoir au moins lu.

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 12/10/2012 à 13:34
while ($data = mysql_fetch_array($result_requete_cout)){
$temps = $data['temps_total'];
$temps_passer=0; //voir note ci dessous
$temps_passer = $temps + $temps_passer;
}


//a chaque passage de la boucle while ça remet $temps_tasse a 0 donc tu aura toujours $temps passé = $temps

il faut initialiser $temps_passe à 0 en dehors de la boucle:

$temps_passer=0;  
while ($data = mysql_fetch_array($result_requete_cout)){ 
$temps = $data['temps_total']; 

$temps_passer = $temps + $temps_passer; 
}
1
telliak Messages postés 3667 Date d'inscription mercredi 20 septembre 2006 Statut Membre Dernière intervention 4 novembre 2024 876
11 oct. 2012 à 23:54
Salut,
Je ne connais rien du tout à ce langage, mais le nombre des accolades droite -}- ne balance pas avec celui des {, il en manque une...
Faudrait pas l'ajouter derrière celle qui existe ?
Il finit où ton 1er while ?
0