테스트 사이트 - 개발 중인 베타 버전입니다

db 여러컬럼 카운트 뽑기 채택완료

웹프리죤 4년 전 조회 2,908

car_number1 ~ car_number20 까지 값이 있는 컬컴에 카운트를 구할려고 합니다.

 

car_number1 ~ car_number3 까지 값이 있다면 3

car_number1 ~ car_number12 까지 값이 있따면 12

 

라고 되겠죠..

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
플래토
4년 전

값이 있는 컬럼여부의 수를 더하는것이죠?

 

</p>

<p>$sql = "select * form g5_write_carinfo where 조건 ";</p>

<p>$row = sql_fetch($sql);</p>

<p>$colcnt = 0;</p>

<p>foreach($row as $key => $value) {</p>

<p>    if (strrpos($key, "car_number") !== false) {   </p>

<p>      //컬럼의 수를 알수없고, 컬럼명이 car_number에 해당되는 모든 경우의 수만 체크</p>

<p>        if ($value)  // 값이 존재하는 경우</p>

<p>            $colcnt++;    </p>

<p>    }</p>

<p>}</p>

<p>echo "값이 있는 컬럼수 : ".$colcnt."
";</p>

<p>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

웹프리죤
4년 전
계속 0 으로만 나오는데 어디가 잘못된거 같아요.. 제가 이리저리 수정해보고 있긴 한데요.

댓글을 작성하려면 로그인이 필요합니다.

이미 장비 리스트 출력하는 부분에서

값이 없으면 loop를 중단하는 코드가 있는듯 한데

이 loop에서 count만 세서

나중에 출력해 주면 될 듯합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

장비 관련 정보는 db table을 따로 분리하는 것이 좋을 듯합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

 

</p>

<p><?php

                        $sql2 = " select * form {$g5['member_table']} where type = '파트너스' and mb_id ='{$row['mb_id']}' ";

                        $rowcnt = sql_fetch($sql2);

                        $colcnt = 0;

                        foreach($rowcnt as $key => $value) {

                            if (strrpos($key, "car_number") !== false) {   

                              //컬럼의 수를 알수없고, 컬럼명이 car_number에 해당되는 모든 경우의 수만 체크

                                if ($value)  // 값이 존재하는 경우

                                    $colcnt++;    

                            }

                        }        

                    ?></p>

<p> </p>

<p><span>장비</span> <?php echo $colcnt; ?>대</p>

<p>

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

플래토
4년 전
테이블에서 car_number로 된 컬럼들이 어떻게 구성되어있는지 확인이 가능할까요?
플래토
4년 전
컬럼이 명확하면
for 문으로 확인해도 됩니다.

$row = sql_fetch($sql);
$colcnt = 0;
for ($i=1; $i <= 20; $i++ ) {
if ($row['car_number'.$i])
$colcnt++;
}

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인