목록에서 자기것만 보이도록 하고 싶은데
본문
목록에서 자기것만 보이도록 하고 싶은데요
저는 free게시판 wr_1값에 회원가입시 이름을 따로 불러와서 자동으로 넣는형태입니다.
아래와 같은 '내글만 보기' 버튼을 누르면
<a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=free&sca=&sop=and&sfl=wr_1&stx=<?php echo $member['mb_name'] ?>" class="depth3">내글만 보기</a>
free게시판의
wr_1값이 자신의 회원가입시 이름과 같은값을 가진 게시글만 보이게 까지 했습니다.
이경우
목록페이지의 주소에서 /board.php?bo_table=free 뒤로 붙은 조건이 되는 부분을 삭제해서 엔터를 때리거나
목록버튼을 눌러버리면 모든 게시물들이 다 보여 버려서요. 고민입니다.
그렇게 하더라도
자기것만 보이도록 하고 싶은데
리스트스킨에서 조건문을 넣어놓아야 되는건가요?
보다 확실한 방법이 뭐가 있을까요?
답변 4
list.php 에서
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if ($sca || $stx) {
$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']})) ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 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 = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = sql_num_rows($result);
*/
} else {
$sql_search = "";
$total_count = $board['bo_count_write'];
}
여기와 아래부분을 처리 하면 될거같은데요
if ($sca || $stx) {
$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 ";
}
우선 이름은 중복될 여지가 있으므로
이름 대신 가입(INSERT)시 발급된 DB Field 의 PK 값이 있을겁니다.
그것을 wr_1 에 저장되도록 하는 방법이 나을것 같습니다.
목록이동의 경우에도 검색조건을 계속 유지하기 위해
검색 조건이 있을 경우 해당 키=값 이 유실되지 않도록
파라미터 연결을 해주어야 합니다.
(...?검색1=값1&검색2=값2&키=값&검색3=값3...)
$mb의 mb_id과 세션의 아이디를 이용해서 조건을 넣어서 출력하면 되지 않을 듯 싶습니다.
list.php 쪽 소스를 스킨쪽으로 가져와서 list.skin.php 파일을 수정 하는게 좋을 것 같네요