테스트 사이트 - 개발 중인 베타 버전입니다

1:1 게시판에서 사용할 수 있는, 작성자 본인글만 볼 수 있는 쿼리입니다.

질답을 많이 찾아봐도 한눈에 볼 수 있도록 정리된 명쾌한 내용이 없더라고요..

스킨에서 적용한는건 페이징과 게시물 카운트에 문제가 있고요,

스킨에 카운트 쿼리를 넣으면 비효율적일 것 같고 해서

bbs/list.php 에서 처리가능하도록 종합해서 올려봅니다.


50라인 부근

 

$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";

이 부분 바로 하단에

 

$sql_search .= " and mb_id = '{$member[mb_id]}' "; // 본인 글만 카운트

이놈 추가

 

62라인

 

// 원본

// $sql_search = "";

// $total_count = $board['bo_count_write'];

 

이 부분을 아래 문구와 교체

 

// 본인 글만 카운트

$sql_search = " mb_id = '{$member[mb_id]}' ";

$sql = " SELECT COUNT * AS `cnt` FROM {$write_table} WHERE {$sql_search} ";

$row = sql_fetch($sql);

$total_count = $row['cnt'];

 

 

169라인 부근에

 

if ($is_search_bbs) {

$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";

} else {

 

이곳 바로 하단에

 

// 원본

// $sql = " select * from {$write_table} where wr_is_comment = 0 ";

// if(!empty($notice_array))

// $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";

// $sql .= " {$sql_order} limit {$from_record}, $page_rows ";

// }

 

이 부분을

// 본인 글만 보이기 수정

$sql_search= " and mb_id = '{$member[mb_id]}' ";

$sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search} ";

if(!empty($notice_array))

$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";

$sql .= " {$sql_order} limit {$from_record}, $page_rows ";

}

 

여기까지 하면 리스트와 카운트, 페이징 모두 잡힙니다,

게시판 전체글 보기부터 분류에 이르기까지, 아마도,

 

다만 당연히 bbs/list.php 수정이라서 모든 게시판에 일괄 적용이 되고

이대로는 관리자도 다른 회원의 글을 볼 수가 없으니

 

if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기

이런 식으로 조건문 사용해서 원본 소스는 살려주셔야 되겠죠.

 

이렇게 하면 게시판만 지정해주면 뭔 스킨으로든 1;1 게시판을 만들 수 있으니

좋지 아니한가 싶습니다.

 

여기서 도움 주시는 뛰어난 분들께 많이 도움 받으면서 공부하고 있는데

도움 주시는 것만 낼름 받아먹기만 할 수가 없어서

미세먼지팁이라도 정리해서 올려봅니다.

 

제가 원래 쿼리쪽은 까막눈이나 다름없어서 혹시 문제될 수 있는 부분이 있다면 말씀주세요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 20개

정보 감사합니다~
유용한 정보네요 공개해 주셔서 감사합니다.
유용한 팁이네요~!! 정보 감사합니다!!
유용하게 쓰겠습니다. 감사합니다.
if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기
이걸 어디에다가 넣어야하나요? 이렇게 할경우에는 모든게시판이 1:1처럼 변경되지않을까요?
1개게시판만 변경을 못하나요?
소스를 교체하는 경우는

[code]
if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기

교체 소스

} else {

원본 소스

}
[/code]

와 같이 적용하시면 되고 소스를 추가하는 경우에는

[code]
if($bo_table == "게시판이름" && !$is_admin) { // 관리자를 제외하고 특정게시판에 본인글만 보이기

추가 소스

}
[/code]

이렇게만 수정해주시면 게시판이름 안에 넣은 게시판만 적용될거에요
https://sir.kr/g5_tip/13785

참고해주십시오. 카운터 제외 본인글과 게시판, 아이디 지정내용을 넣었습니다.
공유 감사드립니다!
관리자는 글 번호가 1, 2, 3, 4, 제대로 나타나는데
관리자가 아닌 글쓴이는 글 번호가 0, -1, 2, -3, 이런식으로 나타납니다.
저만 그런가요? 다른분들은 말씀이 없으시네요..

그리고 글이 많아질 경우 관리자는 페이징 기능이 정상적으로 작동하는데
이 역시 관리자가 아닌 글쓴이는 페이징 기능이 작동하지 않는것 같습니다.

관리자는 글번호, 페이징 정상적으로 작동되는데
관리자가 아닌 글쓴이의 글번호, 페이징이 문제인것 같네요..
저도 그러네요
페이징 쪽이 잘못 되어서 0, -1, 2, -3, 나오시면
$sql = " SELECT COUNT * AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
를 아래로 바꾸시면 됩니다.
$sql = " SELECT COUNT(*) AS cnt FROM {$write_table} WHERE {$sql_search} ";
그리고 자세히 안봤는데
$sql = " SELECT COUNT(*) AS cnt FROM {$write_table} WHERE {$sql_search} and wr_is_comment = '0' ";
이지 않을까 싶습니다.
수고하십니다. 위처럼 바꾸어보니, 일반회원은 0부터 카운트가 잡히고, 관리자로그인 시 2 1 0 -1 -2 -3 이런식으로 카운트가 잡히네요....
이걸 특정레벨도 전체열람이 가능하도록 할 수 있는지요?
고수님의 도움을 기다리겠습니다.
좋은 정보 입니다. 감사합니다.
정말 감사합니다.
수정하면
게시판 상단에 이게 뜨는 이유가 뭘까요??


Warning: Use of undefined constant mb_id - assumed 'mb_id' (this will throw an Error in a future version of PHP) in /www_root/bbs/list.php on line 65

Warning: Use of undefined constant mb_id - assumed 'mb_id' (this will throw an Error in a future version of PHP) in /www_root/bbs/list.php on line 181

게시글 목록

번호 제목
23798
23797
23792
23791
23785
23781
23770
23766
23764
23761
23747
23732
23724
23718
23706
23700
23697
23686
23682
23681
23680
23678
23665
23644
23643
23639
23637
23630
23626
23616