게시판에서 공지글 재출력 걸러내기 입니다. 정보
게시판에서 공지글 재출력 걸러내기 입니다.본문
게시판에서 공지글이 일반 리스트 화면에도 같이 뜨는걸
막기 위한 것입니다.
다른분이 올려두신 팁이 있는데, 좀 다르기에 글 남깁니다.
제가 간단히 테스트 해본 바로는 인덱스가 걸리는데, 정확한지는 모르겠네요.
/bbs/list.php 에서 아래의 부분을
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 $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
$list = array();
$i = 0;
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0; $k<count($arr_notice); $k++)
{
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
if (!$row[wr_id])
continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
}
}
///////////////////////////////////////////////////////////////////
아래와 같이 수정하시면 됩니다.
$list = array();
$i = 0;
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0 , $ck = count($arr_notice); $k < $ck; $k++)
{
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
if (!$row[wr_id])
continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$notice_order .= " and wr_id != '$arr_notice[$k]'";
$i++;
}
}
// if(!$board[bo_1]) $notice_order = ''; //게시판 설정에서 공지 재출력 유무를 조정할 경우
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 $notice_order $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
//////////////////////////////////////////////////////////////////////////
쿼리문을 잘 몰라서 $notice_order 작성이 허접합니다.
혹 더 나은 작성법을 아시면 좀 가르쳐 주시길 바랍니다.
인덱스를 포함해서 문제가 발생할 수 있다면 좀 알려주시면 감사하겠습니다.
그럼 즐거운 하루되세요.
막기 위한 것입니다.
다른분이 올려두신 팁이 있는데, 좀 다르기에 글 남깁니다.
제가 간단히 테스트 해본 바로는 인덱스가 걸리는데, 정확한지는 모르겠네요.
/bbs/list.php 에서 아래의 부분을
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 $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
$list = array();
$i = 0;
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0; $k<count($arr_notice); $k++)
{
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
if (!$row[wr_id])
continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
}
}
///////////////////////////////////////////////////////////////////
아래와 같이 수정하시면 됩니다.
$list = array();
$i = 0;
if (!$sca && !$stx)
{
$arr_notice = split("\n", trim($board[bo_notice]));
for ($k=0 , $ck = count($arr_notice); $k < $ck; $k++)
{
$row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
if (!$row[wr_id])
continue;
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$notice_order .= " and wr_id != '$arr_notice[$k]'";
$i++;
}
}
// if(!$board[bo_1]) $notice_order = ''; //게시판 설정에서 공지 재출력 유무를 조정할 경우
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 $notice_order $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
//////////////////////////////////////////////////////////////////////////
쿼리문을 잘 몰라서 $notice_order 작성이 허접합니다.
혹 더 나은 작성법을 아시면 좀 가르쳐 주시길 바랍니다.
인덱스를 포함해서 문제가 발생할 수 있다면 좀 알려주시면 감사하겠습니다.
그럼 즐거운 하루되세요.
추천
4
4
댓글 19개
필요한 소스 였는데..
감사합니다..^^
감사합니다..^^
감사합니다. 게시판이 훨씬 깔끔해졌어요.
감솨!
감사합니다.
좀더 쉽게 나왔네요..
쉽게 만든소스...노고에 감사드립니다.
스크랩합니다.
^^
좋은 팁 감사합니다.
감사드립니다.
감사합니다
잘 쓰겠읍니다.
잘 쓰겠읍니다.
고맙습니다^^
좋은 팁 고맙습니다^^*
감사합니다~ ^^
감사합니다
공지중복 방지
아무 문제 없이 수정했네요 좋은팁 감사합니다~
고맙습니다~
최고입니다!