COUNT() 함수 관련 문의

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
COUNT() 함수 관련 문의

QA

COUNT() 함수 관련 문의

본문

주문서를 엑셀로 출력하는 기능을 사용하고 있습니다.

 

선택한 주문건에 대해 엑셀로 출력을 하려고 하는데요.

 

PHP Warning:  count(): Parameter must be an array or an object that implements Countable in

 

이런 오류를 내고 있어서 확인해보니 카운트로는 어레이 이거나 셀 수 있는 변수여야 한다는데

 

특별한 문제가 없어 보이는데도 오류가 나더라구요.

 


for ($i=0; $i<count($_POST['chk']); $i++)
{
    // 실제 번호를 넘김
    $k     = $_POST['chk'][$i];
 

 

이런 코드가 있는데

 


if($_POST['chk'] && count($_POST['chk']) > 0) {
    $cnt = count($_POST['chk']);
} else {
    $cnt = 0;
}
for ($i=0; $i<$cnt; $i++)
{
    // 실제 번호를 넘김
    $k     = $_POST['chk'][$i];

 

이렇게 했더니 주문서가 하나씩만 다운이 되고 있습니다.

 

혹시 좋은 처리 방법이 있을까요?

 

 

이 질문에 댓글 쓰기 :

답변 2

일단 처리 페이지에서 chk 값이 제대로 넘어오는지

 

print_r($_POST); 해보세요

 

chk값이 배열로 넘어오는지 체크해보세요.

 

조건문에 is_array 를 이용해 보세요.

조건문에


if(is_array($_POST['chk']) && count($_POST['chk']) > 0) {


로 해도 한개씩만 다운이 되더라구요. ^^

일단 실제 서비스하고 있는 상태라서 내일 아침에 다시 확인해봐야 할 것 같네요.

찍어보니 제대로 array 로 표시도 잘 되고 잘 넘어오고 있습니다.

제 예상에는 $_POST['chk']의 값이 0이 어서 그런게 아닌가 추측하고 있습니다.

답변 달아주셔서 감사합니다.

문제가 두가지네요

첫번째는 항상 주문서가 하나만 다운로드 된다.

두번째는 $_POST['chk'] 이 null 이어서 에러가 나는경우

 

보통 이런경우는 첫번째만 해결하면 두번째는 자동으로 해결될겁니다.

 

고로 count 함수에러는 신경쓰지 마시고 주문서가 두개 이상 다운로드 되게 해보세요

 

위에 기본적인 상태로 하면 워닝이 있을뿐 동작은 정상적으로 잘 합니다.
그냥 워닝을 없애보고 싶은데 잘 안되서 문의 드려봤습니다. ^^

답변 달아주셔서 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 11
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT