While dans while
thomas
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
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.
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
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 = $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;
}