PDA

View Full Version : SUM values inside foreach and while loop



newphpbees
27 Apr 2012, 09:24 PM
Hi..

I have table which has a data so_month:

FromMonth : 5
ToMonth : 7

and I have table working_days:

MonthName
May
Jun
Jul
MonthNumber
05
06
07
WorkingDays
23
24
23

Now I have function to get the 3 consecutive months from FromMonth to ToMonth , which as you can see from May to Jul

Now I have problem in getting the SUM of Working days.

here is my code:



<?php
$sql = "SELECT FromMonth, ToMonth FROM so_month";
$res = mysql_query($sql,$con);

$row = mysql_fetch_assoc($res);
$FromMonth = $row['FromMonth'];
$ToMonth = $row['ToMonth'];

function monthNames($from, $to){
$range=array();
for($i=$from; $i<=$to; $i++){
$range[$i]=date('M', mktime(0,0,0,$i));
}
return $range;
}
$month_ = implode("' ', ",monthNames($FromMonth,$ToMonth));

foreach( monthNames($FromMonth, $ToMonth) as $month){
$sql = "SELECT MonthName, SUM(WorkingDays) AS WorkingDays FROM working_days WHERE MonthName IN ('$month') GROUP BY MonthName";
$res = mysql_query($sql, $con);

while($row = mysql_fetch_array($res)){

$WorkingDays = $row['WorkingDays'];
}
echo $WorkingDays;
}
?>



the output of this code is:

232423

and when I change this line:

$WorkingDays = $row['WorkingDays'];
to
$WorkingDays += $row['WorkingDays'];

the output is:

234770

I correct output should be: 70

Any help is highly appreciated.

Thank you very much..