
저는 등록된 리스트(여러개일수도 있음) 내에서 wr_0 ~ wr_20 입력된 값의 갯수를 구하고자 합니다.
그림 파일을 보시면 이해하실수 있을겁니다.
그냥 wr_0 에서 wr_20 중에 값이 입력된것만 갯수를 구하는 것입니다. ( 계산이 아님 )
아래와 같이 하니 자꾸 한줄의 갯수인 5( $count)만 나옵니다. 8이 나와야 하는데요..ㅜㅜ
Copy
$wr_goal_month="10";
$query2 = "select * from g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";
$result2 = sql_query($query2);
$row2 = sql_fetch_array($result2);
$k="0";
$count="0";
$stack_goal_total="0";
for($k=1; $k<=$wr_goal_month; $k++){
if($row2['wr_goal_'.$k]!==""){ // 값이 들어있는것만 찾아낸다.
$count++;
}
}
echo $count;
|
답변 2개 / 댓글 3개
채택된 답변
+20 포인트
onlymilk47
2017-10-30 (월) 19:50:20
//루프를 돌리시면 됩니다
Copy
$wr_goal_month="10";
$query2 = "select * from g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";
$result2 = sql_query($query2);
while($row2 = sql_fetch_array($result2))
{
$k="0";
$count="0";
$stack_goal_total="0";
for($k=1; $k<=$wr_goal_month; $k++){
if($row2['wr_goal_'.$k]!==""){ // 값이 들어있는것만 찾아낸다.
$count++;
}
}
}
echo $count;
답변에 대한 댓글 2개
hero412
2017-10-30 (월) 20:12:46
hero412
2017-10-31 (화) 06:56:52
온리밀크님 $count="0"을 루프 밖으로 빼니 제대로 나옵니다.
감사합니다.^^
감사합니다.^^
2017-10-30 (월) 20:26:15
쿼리로 쉽게 구현하는 방법
Copy
$query2 = "select
if(count(wr_1) > 0,1,0)
+ if(count(wr_2) > 0,1,0)
+ if(count(wr_3) > 0,1,0)
+ if(count(wr_4) > 0,1,0)
...
+ if(count(wr_19) > 0,1,0)
+ if(count(wr_20) > 0,1,0)
cnt
g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";
$row = sql_fetch($query2);
$count = $row[cnt];
echo $count;
로 구현가능하고
위의 문장을 굳이 줄인다면
Copy
$query2 = "select
if(count(wr_1) > 0,1,0)";
for ($i = 2; $i <= 20; $i++) {
$query2 .= "+ if(count(wr_".$i.") > 0,1,0) ";
}
$query2 .= " cnt
g5_write_kpi where wr_depart_name='기획실' wr_form = '6' and wr_goal_year ='2017'";
$row = sql_fetch($query2);
$count = $row[cnt];
echo $count;
로 구현가능합니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
제가 잘못해서 그런건지.. 그냥 숫자 0만 나오네요... 쿼리문은 이상이 없는듯하고 8이 나와야 정상인데...
난감하네요.ㅜㅜ