thinkphp 페이징 데이터 쿼리 시 캐시가 설정되어 있으면 첫 번째 페이지만 표시됩니다. 어떻게 깨나요?
즉, 12>> 이런 효과가 나오는데 2를 클릭하면 1페이지의 내용이 계속 표시됩니다.
$count=M('visitdata')->where(array('works_code'=>$get_code))->count();
$Page=new \Think\Page($count,10);
$show=$Page->쇼();
S($get_code.'visitdata',null); //캐시를 먼저 지우지 않으면 1페이지만 표시됩니다...
// 페이징 데이터 쿼리를 수행합니다. 여기에 캐시가 설정되면 1페이지만 표시됩니다.
M('visitdata')->cache($get_code.'visitdata',60)->where(array('works_code'=>$get_code))->order('visit_id')->limit ($Page->firstRow.','.$Page->listRows)->select();
$cache_visitdata=S($get_code.'visitdata');
$this->할당(배열(
'코드'=>$get_code,
'방문데이터'=>$cache_visitdata
)));
$this->할당('페이지',$show);
$this->display();
12 >> 이런 효과가 나오는데 2를 클릭하면 1페이지의 내용이 계속 표시됩니다.
어떻게 깨뜨릴 수 있나요?
이것은 TP3.2입니다. 오랫동안 사용하지 않아서 어떻게 사용하는지 잊어버렸습니다. 질문자는 다음과 같이 할 수 있습니다.
)
'content_page_' . $page
키와 페이징 표시
디버깅을 위한 sql문을 출력하고, 먼저 어떤 sql이 실행되고 있는지 확인한 후 문제를 찾아보세요
여기에 있는 내용: ->cache($get_code.'visitdata',60)
$get_code.'visitdata'는 페이징의 경우에도 동일하므로 업데이트되지 않습니다.
이 키에 페이지 번호를 포함할 수 있어야 합니다.
으아악