값을 저장 한 데이터베이스에서 읽으려고합니다. 매일 모든 값을 추가하려고 노력하고 있으며이를 수행하기 위해 다음 코드를 작성했습니다. 어떤 이유로 첫날의 행만 합산됩니다. 내 루프 중 하나의 상태가 작동하지 않는 이유가 있다고 확신하지만 간과하고있는 것 같습니다. 어떤 빠른 시선이라도 감사합니다.
$readsum =array();
$totalsum = 0;
for ($i=1; $i <= $numdays; $i++){
$readresult=mysql_query("SELECT * FROM `test`.`cost_table` WHERE `Day`='$i'",$LinkID);
while($rows=mysql_fetch_array($readresult)){
$readsum[]=$rows['Yield'];
$readsum[]=$rows['Rolls'];
$readsum[]=$rows['Utilities'];
$readsum[]=$rows['Payroll'];
$readsum[]=$rows['Direct Materials'];
$readsum[]=$rows['3rd Party'];
$readsum[]=$rows['Supplies'];
$readsum[]=$rows['Packaging'];
$readsum[]=$rows['Rental'];
$readsum[]=$rows['Other'];
}
for($i=0; $i <= 9; $i++){
$totalsum = $totalsum + $readsum[$i];
}
echo $totalsum;
$totalsum = 0;
}
현재 출력은 하나의 값입니다. 데이터베이스의 첫 번째 행의 합계입니다. 매월 2 일이므로 두 번째 합계를 계산하고이를 반영해야합니다.
여기에 내 의견을 확장하려면 코드를 다시 작성하여 개선하는 방법이 있습니다.
$readsum =array();
$totalsum = 0;
$readresult=mysql_query("SELECT * FROM `test`.`cost_table` ORDER BY `Day`",$LinkID);
while($rows=mysql_fetch_array($readresult)){
$readsum[$rows['Day']][]=$rows['Yield'];
$readsum[$rows['Day']][]=$rows['Rolls'];
$readsum[$rows['Day']][]=$rows['Utilities'];
$readsum[$rows['Day']][]=$rows['Payroll'];
$readsum[$rows['Day']][]=$rows['Direct Materials'];
$readsum[$rows['Day']][]=$rows['3rd Party'];
$readsum[$rows['Day']][]=$rows['Supplies'];
$readsum[$rows['Day']][]=$rows['Packaging'];
$readsum[$rows['Day']][]=$rows['Rental'];
$readsum[$rows['Day']][]=$rows['Other'];
}
//var_dump $readsum to see what you have to work with
foreach($readsum as $day=>$dataArray){
foreach($dataArray as $rsum){
$totalsum = $totalsum + $rsum;
}
echo $totalsum;
$totalsum = 0;
}
기본적으로 전체 세트에 대해 쿼리를 수행합니다.
결과를 살펴보고 연관 배열로 작업하기 쉬운 멋지게 구축하십시오.
그런 다음 해당 배열을 사용하여 데이터로 원하는 작업을 수행하십시오.
훨씬 더 재사용 가능하고 이해하기 쉽습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다