[1원짜리 팁] 리스트에서 공지사항 중복 출력 막기
질답 게시판에 질문이 있어서 예전에 제가 올렸던 팁을 지금 보니
좀더 간편하고 확실한 방법으로 개선 해야할 필요가 있는 것 같아 개선한 방법입니다
행으로 표시하면 버젼에 따라 달라질 수도 있고 해서 부분 부분 전체코드를 표시합니다
행 표시는 euc-kr버젼 기준입니다( bbs/list.php)
추가함, 수정함 부분만 맞추어 넣으세요(추가 및 수정 3곳)
/////////////////////////////37행
else
{
$sql_search = "";
//-------------------------추가함
$notice_cnt=0;
$arr_notice = array();
$arr_notice = explode("\n", trim($board[bo_notice]));
$notice_idStr = implode(",", $arr_notice);
if($notice_idStr ){
$notice_cnt= count($arr_notice);
$no_notice_qry= " and wr_id not IN($notice_idStr) ";
}
//-----여기까지 추가
$total_count = $board[bo_count_write] - $notice_cnt; //---- 수정함( $notice_cnt)
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
/////////////////////////////80행
if ($sca || $stx)
{
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
$sql = " select * from $write_table where wr_is_comment = 0 $no_notice_qry $sql_order limit $from_record, $board[bo_page_rows] "; //----------- 수정함 ($no_notice_qry)
}
$result = sql_query($sql);
좀더 간편하고 확실한 방법으로 개선 해야할 필요가 있는 것 같아 개선한 방법입니다
행으로 표시하면 버젼에 따라 달라질 수도 있고 해서 부분 부분 전체코드를 표시합니다
행 표시는 euc-kr버젼 기준입니다( bbs/list.php)
추가함, 수정함 부분만 맞추어 넣으세요(추가 및 수정 3곳)
/////////////////////////////37행
else
{
$sql_search = "";
//-------------------------추가함
$notice_cnt=0;
$arr_notice = array();
$arr_notice = explode("\n", trim($board[bo_notice]));
$notice_idStr = implode(",", $arr_notice);
if($notice_idStr ){
$notice_cnt= count($arr_notice);
$no_notice_qry= " and wr_id not IN($notice_idStr) ";
}
//-----여기까지 추가
$total_count = $board[bo_count_write] - $notice_cnt; //---- 수정함( $notice_cnt)
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
/////////////////////////////80행
if ($sca || $stx)
{
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
$sql = " select * from $write_table where wr_is_comment = 0 $no_notice_qry $sql_order limit $from_record, $board[bo_page_rows] "; //----------- 수정함 ($no_notice_qry)
}
$result = sql_query($sql);
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 33개
위쪽에 공지글 나오고 리스트에 공지글과 똑같은 게시물이 다시 나오는 것을 막는 것입니다
아님 리스트 1번글이 되는지요?
즉 등록한 날짜 그대로 리스트에 나옵니다
감사합니다.
다른 방법을 썼엇는데.
이 방법이 좋군요...
감사합니다 !
감사합니다.
감사합니다.
위에 소스그대로 하니까.. 리스트 순서가 거꾸로 되네요..
if ($sst)
$sql_order = " order by $sst $sod ";
if ($sca || $stx)
{
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
$sql = " select * from $write_table where wr_is_comment = 0 $no_notice_qry $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
에서는 어느 부분 $no_notice_qry 로 변경해야 하는지 아시는분 있으시면...답변 좀 부탁드립니다~
어느부분을 $notice_cnt로 변경해야 하는지<---위 코드가 변경된 소스입니다
그대로 복사해서 붙여넣기만 하면 됩니다
//<-- 이 주석은 해당 부분을 위 코드처럼 변경하면 된다는 설명입니다
라고 에러가 나는건 왜죠..ㅠㅠ
그대로 복붙 했는데..
list.php on line 43 부분 부니까
$arr_notice = explode("\n", trim($board[bo_notice])); 이거네요,,
UTF-8 이라서 그런가요..
$arr_notice = array(); <---마지막에 세미콜론 붙이세요
삼식님도 해결 하심 쪽지좀 주세요