SMS처리 도우미
제목
  [RE] datatable serverside 재문의 드립니다 (From. 소스놀이터)

내용 살펴봤는데...

직접 디버깅하지 않으면 해결이 쉽지 않은 내용이네요.

그래도, 추정 답변 드립니다.

1. php 에러구문
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given

mysqli_query 함수로 통해 쿼리를 실행했을때, 에러가 발생한 듯 합니다.
에러 발생 시, 레코드셋이 아니라, false를 반환하게 되며, 따라서 mysqli_fetch_array에 잘못된 변수(false)가 입력되었다는 뜻입니다.
그런데, 질문 내용을 읽어보면 게시물은 잘 뜬다고 했습니다.
그래서, 추정컨대... 첫 로딩시가 아니라... 검색 또는 기타 액션이 주어졌을 때, 쿼리 오류가 생기는 듯 합니다.
따라서, 다음처럼 코드를 추가하여 보세요.
 

$result = mysqli_query($conn, $SQL);
if(!$result)
{
echo $SQL;
exit;
}
$ret_arr=array();
 
while($row=mysqli_fetch_array($result))

 

아마, 문제가 생긴 쿼리문이 출력될텐데... 해당 쿼리문을 phpmyadmin 이나 기타 mysql 클라이언트 툴에 직접 실행해보세요.
그 후, 에러 구문을 보고 적절히 수정해보세요

2. 검색부분이 안됩니다
위에서 설명한 내용과 연관이 있을 듯 합니다.
우선 1번을 해결해 보세요.
그리고, 검색 시, php 파일에서 쿼리문을 찍어보세요. 쿼리문에 오류가 있을 가능성이 많습니다.
(혹은 기타 PHP 오류 메시지 확인)
그리고, 다음 부분도 살펴보세요.
php 파일에 총 3개의 쿼리가 있는데... 3개는 동일한 조건이어야 합니다.
예를 들어, 3개 쿼리가 다음과 같다면 바꿔보세요
첫번째: select count(*) from ******
두번째: select count(*) from ****** where 필드5 > -1 (+기타 추가 쿼리)
세번째: select 필드1, 필드2, 필드3 from ****** where 필드1='AA' and 필드2='BB' and 필드3='CC' and 필드5 > -1
--->
첫번째: select count(*) from ****** where 필드1='AA' and 필드2='BB' and 필드3='CC'
두번째: select count(*) from ****** where 필드1='AA' and 필드2='BB' and 필드3='CC' and 필드5 > -1 (+기타 추가 쿼리)
세번째: select 필드1, 필드2, 필드3 from ****** where 필드1='AA' and 필드2='BB' and 필드3='CC' and 필드5 > -1

3. 속도가 느린 문제 
이 부분은 위에 오류가 관련이 있을 수도 있고... 별도의 문제일 수도 있습니다.
우선 위 문제를 고쳐보시고... 다음 제안을 드려봅니다.

테이블 특정 필드(혹은 복합 형태로)에 인덱스를 추가하시면 좋은데... 테이블 데이터를 보지 않아 정확히 제안드리기 힘듭니다
******_city 필드 또는 ******_year 필드에 인덱스를 추가해주세요. (혹은 각각을 테스트하여, 속도가 좋은 쪽 선택)

기존에 인덱스가 없었다면 속도가 개선될 것입니다. 
 

[datatable serverside 재문의 드립니다의 답글] ----------------------------------------------------------------

안녕하세요  datatables serverside 강의 질문드립니다 

지난번 문의  "Undefined index" 에러는 답변하신대로 php.ini 를 수정하여 해결했습니다 

 

에러가 발생합니다

1. 검색부분이 안됩니다

   한글검색시 날짜 때문에 검색이 에러 난다고 해서 강의대로 

   날짜부분을 searchable 을 disable 처리하였는데도 검색이 안됩니다 

 

2. 조회된 결과의 결과값 수 를 나타내지 못합니다  

 

전체 레코더 수는 조회되는데  조회한 결과값은 나타내지 못하는 것 같습니다  

php의 에러문구입니다.

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given in C:\Bitnami\wampstack\apache2\htdocs\data\2020_save_server_input.php on line 72
{ "draw":1, "recordTotal":4887, "recordFiltered":4887, "data": []}

 

3. html은 잘 표현데는데 속도가 엄청느립니다 

   처음 에도 그렇고  다음 페이지로 이동시에도 속도가 많이 느립니다 

 

첨부파일은 html 캡쳐화면과 

html 및 php 파일을 압축해서 올렸습니다 

해결방법 부탁드립니다.  감사합니다 

 

 

 

----------------------------------------------------------------

트위터, 페이스북 공유 부탁드립니다~!
트위터   페이스북


  • 패스워드
X