COUNT() 함수 관련 문의

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 함수에러는 신경쓰지 마시고 주문서가 두개 이상 다운로드 되게 해보세요

 

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

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

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

회원로그인

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