list.php 리스트 카운트 및 페이징 질문드려요
본문
먼저 답변 주시는 분들께 항상 감사하다는 말씀 드립니다.
현재 답변글만 출력하는 용도로 list.php 를 따로 만들어서 리스트 출력부분에
if ($is_search_bbs) {
$sql = " select * from {$write_table} where {$sql_search} and wr_reply != '' {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 and wr_reply != '' {$sql_apms_where} ";
if(!$is_notice_list && $notice_count)
$sql .= " and wr_id not in (".implode(', ', $arr_notice).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
// 페이지의 공지개수가 목록수 보다 작을 때만 실행
$k = 0;
if($page_rows > 0) {
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($sca || $stx)
$row = sql_fetch(" select * from {$write_table} where wr_id = '{$row['wr_id']}' ");
$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
위와 같이 세팅해서 일반 리스트나 분류 리스트 모두 답글만 출력이 잘 되고 있습니다
혹시 이 쿼리에서 비효율적이거나 문제 있는 부분이 있다면 그것도 지적 부탁드리겠습니다!
헌데 카운트 쪽을 손을 보려 하니까 골치가 아프네요 ㅠㅠ
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
$row = sql_fetch($sql);
$min_spt = (int)$row['min_wr_num'];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
if($sql_apms_where) $sql_search .= $sql_apms_where;
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
여기까지가 페이징 및 카운트 부분인 듯 한데
$sql_search = 든 $sql = 든 $sql_search .= 이든간에 어디든지 " and wr_reply != '' " 갖다붙이게되면
$sca 출력 부분에 영향을 끼쳐서인지
분류 선택 시 목록에서 리스트가 싹 사라져버리네요;;
혹시 다른 방법이 있다면 가르쳐주시길 부탁드리겠습니다!
!-->!-->답변 1
맨아래 코드의 영역에서
02번라인의 if문 시작에서 닫는 중괄호 } 가 없구요
13번라인의
$sql_search
구분이 이전에 sql_search 가 아무것도 없는경우
19번 라인의
where 이후에 바로 where and 구조가 되서 문법오류가 납니다.
13번 라인의
$sql_search 의 값이 유무에 따라
and를 넣을지 말지를 정하셔야 할듯합니다.
그게 아니라면
19번 라인의 where 절 바로뒤에 (1) 혹은 1=1 을 추가해도 됩니다.
답변을 작성하시기 전에 로그인 해주세요.