sql 배열로 입력된 값을 이번달만 더하기
본문
write.skin 에서 배열로 입력된 값을
list.skin 에서 이번달에 입력된 값만 더해서 출력 하려고 합니다.
아래처럼 했는데 ㅠㅠ
에러도 안나오고
출력되는 부분에서 멈춰 버리네요
뭐가 잘못된 걸까요 ? ㅠㅠ
<?
$ex1_filed = explode("|",$write[wr_1]);
$ext1_00 = $ex1_filed[0];
$ext1_01 = $ex1_filed[1];
$ext1_02 = $ex1_filed[2];
$ext1_03 = $ex1_filed[3];
$ext1_04 = $ex1_filed[4];
?>
<?
$sql_common =" select sum($ext1_04) as tot from write_table where wr_datetime between ";
$sql = "$sql_common '" . date("Y-m-01") . "' and '" . date("Y-m-d",strtotime("last day of this month")) . " 23:59:59'";
$result = sql_fetch($sql);
echo $result['tot'];
?>
답변 2
select sum($ext1_04) as tot from write_table where wr_datetime between
이 문장에서
sum을 하는데
변수의 값이 없거나, 비정상일때 검증이 전혀 알될것 같습니다.
그리고,
입력된 $ext1_04를 sum 하시는데
select로 할 필요가 있나요?
해당 테이블에서 일자기간내의 값을 sum하는것은 쿼리로 하는게 맞지만
변수를 전달해서 where절의 대입값도 아닌
조회할 대상을...
의미없는 조회가 되겠네요
쿼리문 자체도 비정상으로 처리될것 같습니다.
넘겨받은 값을 sum하려면
그것도 loop로 하시려면
유진아빠님의 의견대로
$list를 받아서
$cnt = count($list);
$sum = 0;
for ($i = 0; $i < $cnt ; $i++) {
$vars = $list[$i]['wr_1'];
$sum +=intval($vars[4]);
}
echo $sum;
하시면 해결됩니다.
해당 소스가 리스트 스킨이라면
$ex1_filed
=
explode
(
"|"
,
$list[$i]
[wr_1]); 이렇게 변수를 사용하셔야 하고요
쿼리 전에
echo $sql; 하셔서 쿼리를 찍어보세요
답변을 작성하시기 전에 로그인 해주세요.