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

배열 크기에 제한이 있나요? 채택완료

스니음 5년 전 조회 3,767

리스트 페이지에

 

<input type="text" name="last_week[<?php echo $i ?>]" value="0" id="last_week<?=$i?>" class="frm_input" size="2" >

 

이런식으로 값이 되어 있습니다.

 

이걸 update.php 처리할때

 

 $last_week = (isset($_POST['last_week']) && is_array($_POST['last_week'])) ? $_POST['last_week'] : array();

 

이런식으로 받아서 처리를 할려고 하는데 리스트 페이지에는 분명 총 63개 게시물이 있는데

 

배열값을 카운트 하면 56개로 나옵니다.

 

배열 크기가 있어서 그런간가요?

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

답변 3개

채택된 답변
+20 포인트
스니음1
5년 전

자문자답 이네요

php.ini

에서 max_input_vars 이거 크기가 작아서 생긴 문제 였네요. 기본이 1000 으로 되어 있는데

넉넉히 2000 하면 됩니다.

 

 

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

답변에 대한 댓글 1개

s
sinbi
5년 전
오~~~ 이런 경우도 있군요.

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

5년 전

디비 테이블 데이터 타입을 먼저 확인해 보시고 varchar로 되어 있으면 text 등으로 변경해보세요

 

그래도 안되면 post 값들은 다 넘어오는지 확인해보세요

 

안넘어 온다면 maxpost 값을 조절해보세요.

 

 

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

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

s
sinbi Expert
5년 전

해당 값이 저장되는 테이블이나 필드의 데이터타입을 조정하셔야 할 듯 합니다.

mysql datatype 키워드로 구글링 하시면 많은 정보 나올 겁니다.

 

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

답변에 대한 댓글 1개

스니음
5년 전
그게 아니라 배열이 몇개인지가 제일 중요해서요.
for ($i=0; $i<count($_POST['last_week']); $i++) {
$sql = " insert into ................생략................."
}
이런식으로 쿼리를 실행해야 하는데 배열 숫자가 안 맞다보니 63개의 쿼리가 실행되야 하는데

56개의 쿼리만 실행되서 그런거 라서요

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

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

로그인