안녕하세요
본 글 제목과 동일한 제목으로 이전에 글을 올렸습니다.
https://sir.kr/qa/483405?&vpage=1#answer_483501
위 글을 통해 이전 문제는 해결 했고 추가 질문이 있어서 다시 한번 글 남깁니다.
/bbs/list.php 파일에서,
if(!$sst)
$sst = "wr_num, wr_reply";
===>수정
if(!$sst){
if($bo_table=='해당게시판ID') $sst = "wr_1 desc, wr_num, wr_reply";
else $sst = "wr_num, wr_reply";
}
위와 같이 수정하니 맨 앞으로 고정은 되는데,
1순위 : wr_1 체크 한 게시물
2순위 : 날짜
이렇게 정렬이 되는 것 같습니다.
wr_1이 중복으로 체크가 되었을 경우 나중에 등록된 게시물이 위로 올라오고 있는 상태입니다.
wr_1이 체크된 게시물이 여러개일 경우 나중에 체크한 게시물이 더 최신으로 오게 하는 방법이 있을까요?
해결에 더 필요한 정보가 있다면 말씀해주세요
감사합니다.
답변 4개 / 댓글 5개
나중에 체크한 글이 먼저 나오게 하려면,
나중에 체크한 글의 wr_1 에 이전보다 더 높은 값을 저장해야 됩니다.
ex.
첫번째 '공지' 체크 : wr_1 값에 '1' 저장
두번째 '공지' 체크 : wr_1 값에 '2' 저장
세번째 '공지' 체크 : wr_1 값에 '3' 저장
=> order by wr_1 desc 에 의해, 세번째/두번째/첫번째 글 순으로 나옴.
그래서 이 방법을 사용하는 경우..
이전에 wr_1 값중 가장 높은 값을 찾은 후 +1 을 하여 저장하는 방법이 있습니다.
또는..
wr_1 에 현재시각 정보를 저장하는 방법이 있습니다. 나중에 체크한 것에 높은 값이 들어감
첫번째 '공지' 체크 : wr_1 값에 '20221217183005' 저장 (22년 12월 17일 18시 30분 5초)
두번째 '공지' 체크 : wr_1 값에 '20221218184005' 저장 (22년 12월 18일 18시 40분 5초)
세번째 '공지' 체크 : wr_1 값에 '20221217185005' 저장
* write_update.head.skin.php
if ($w == '' && $wr_1)
$wr_1 = date('YmdHis');
답변에 대한 댓글 1개
나중에 체크한다는말은 수정할때 체크한다는거잖아요?
그러면 수정할때 write_update.skin.php 생성해서 wr_datetime를 G5_TIME_YMDHIS현시점으로 업데이트해버리면됩니다.
답변에 대한 댓글 1개
기본 순서는 desc 와 asc 가 있습니다.
질문자님은 나중에 체크한 게시물이 더 최신으로 오게 하고싶으신거자나요
그러면 나중에 체크한게 몬지를 구분해야됩니다.
기본 보드라면 wr_last가 최신 저장 시간입니다.
댓글이나 수정이 들어가면 wr_last가 변경되기 때문에
wr_2 를 미사용중이시라면 wr_1을 체크하실때 wr_2에는 저장시간을 넣어주시는 소스를 추가하시고
wr_1 desc, wr_2 desc (늦게 누를수록 최신시간이 저장되겠죠?) 를 넣어주시면 될거 같네요
답변에 대한 댓글 3개
[code]
if ($is_admin) {
$main_checked = ($write['wr_1']) ? ' checked' : '';
$option .= "\n".'<label class="checkbox-inline"><input type="checkbox" id="wr_1" name="wr_1" value="1" '.$main_checked.'> 메인글</label>';
$option_ctn++;
}
[/code]
이렇게 되어있는데 추가 설명 가능할까요?ㅠ
wr_1 에 데이터가 있으면 옵션 체크되어라
wr_1은 관리자만 보인다
$option_ctn 의 갯수 증가를 하나 증가해라
결국 관리자라면 옵션 선택에 wr_1 체크 기능을 노출하라는 것이거든요
관리자가 아니라면 wr_1 체크기능이 미노출되는 것이지요,
이거에 단점은 관리자 말고 다른이의 글작성 시 관리자가 이글 수정 시 체크를 한 후
본래 글쓴이가 수정하게 되면 wr_1값이 없기에 wr_1 값이 사라질 수 있습니다.
관리자가 글작성시에만 wr_1이 활성화 된다고 보시면 될듯합니다.
제 위 댓글에 더 설명을 붙이자면
관리자라면 노출 체크시간이 들어가야됩니다.
wr_2 항목을 사용 안하실때 예를 들어봅니다.
if($is_admin){
echo '<input type="text" name="wr_2" id="wr_2" value="'.$write[wr_2].'" > ';
} else {
echo '<input type="hidden" name="wr_2" id="wr_2" value="'.$write[wr_2].'" >';
}
관리자일떄 wr_2 에 값을 넣고
관리자가 아니라면 wr_2 값은 히든으로 안보이게 한다
위 내용은 예제로 넣어봤고요, 참고해서 응용해보세요
추가로 wr_2에 datepicker 기능 넣으시면 달력 선택 기능이 추가되실꺼에요
방법은 여러가지일텐데 제가 생각한 방법 남겨봅니다.
마르스컴퍼니 님의 글도 하나의 좋은 방법이네요
글 작성시나 수정시에 wr_1 에 값이 들어가있으면
저장할때 wr_1값을 지금 시간으로 저장하라
제가 볼때 단점은... 기존에 등록된 체크글의 글 상세내용만 수정 했는데
저장하시게 되면 wr_1이 최신일자로 업데이트 되기에
기존의 순서가 바뀌게 되는 부분이 발생될 수 있습니다.
크게 수정할게 없으시다면 ,,, 수정하는데 순서를 맨앞으로 보내도 된다 하시면
위방법도 아주 좋은 방법입니다.
확인하고 가장 좋은 방법으로 적용해보겠습니다.
좋은 하루 되세요!
wr_num 가 등록의 역순이라서..
원하시는대로 나오고 있을텐데요??
답변을 작성하려면 로그인이 필요합니다.
덕분에 잘 해결했습니다!