list.php 리스트 카운트 및 페이징 질문드려요

list.php 리스트 카운트 및 페이징 질문드려요

QA

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 을 추가해도 됩니다.

 

답변 감사드립니다!
자문자답 해결했습니다 ㅠㅠ



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(*) AS `cnt` FROM {$write_table} WHERE {$sql_search} and wr_reply != '' ";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */
} else {



위 코드로 답글 갯수만 뽑아오기 성공했습니다 ^^

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

회원로그인

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