정확히 리프레시 질문인지도 사실 모호한데요..
게시판 리스트에서
$page 값이 5보다 크면 (즉, 6페이지 이후 부터)
실행되는 쿼리를 적어놨는데요.
if ($page > 5) {
if ($list[$ii]['wr_10']){
sql_query("UPDATE g5_write_FoodMarket SET wr_num = $last_num - 1 WHERE wr_id = $wr_id ");
}
}
근데 이걸 곰곰히 생각해보고 보다보니..
누군가가 6페이지 혹은 이상의 페이지에서 리프레쉬를 해줘야
쿼리가 실행되더라구요...-_-
제가 if 문 자체를 그렇게 명시해놔서 그런것 같은데 ㅠ
딱히 방법을 못찾겠어서 조건자체를 저리 걸어놨습니다.
하려는건
5페이지 이후
wr_10 필드에 값이 있으면 해당 게시물을 첫번째 게시물로 만드는
쿼리입니다. 근데 이게 리프레시가 문제네요;
웹 호스팅이라 크론탭은 사용할수 없습니다;
답변 2개 / 댓글 5개
저번 질문과 연관되어 생각해보면 결국 게시글 쌓여서 wr_10 에 필드가 있는 게시글이 5페이지 뒤로 밀려나면
그 게시글을 소위 말하는 끌어올림 하고 싶으신거죠?
한페이지가 10개로 표시되면 50개가 쌓이면 특정게시글을 최상위로 다시 올린다는 그런 뜻맞나요?
그렇다면 wr_10 의 글이 있는 게시글의 wr_num 과 가장 최근의 wr_num.. 이건 last_num 으로 저장하신거 같네요
이거 두개의 차이를 구하면 안될까요?
적당히 차이가 생기면 wr_10 이 있는 게시글의 wr_id 를 가지고 위의 쿼리를 수행하는 방법으로 if 문과 쿼리를 작성하시면 되지 싶은데...
답변에 대한 댓글 4개
사실crontab 도 안써봐서,..-_-;;
최대한 해보려고 하는데
조건이 꽤나 까다롭습니다.
page값이 5이상 일때 특정 게시물이 1페이지로만 오면 되는데.
꼭 page값이 5이상 일때 새로고침을 해줘야 update문이
실행되니....휴 ㅠ
update 문
}
이렇게 하면 되지 않을까요?ㅋㅋ
아 이러면..안되겠네요;
조건이 만족하는 순간 wr_10 필드에 값이 있는 모든 게시물이
update 되겠군요
전체 소스를 올려주시는게 좋을 듯 합니다.
답변에 대한 댓글 1개
$today = date("Y-m-d");
// 2018-02-21 농축산 식품매매 - 대행 게시물이 6페이지에 도달하면 wr_num 을 가장 마지막 번호로 update
if($bo_table == "FoodMarket") {
$sql_a = "SELECT * FROM g5_write_FoodMarket WHERE wr_is_comment = 0 ORDER BY wr_num limit 1";
$row_a = sql_fetch($sql_a);
$last_num = $row_a['wr_num']; // 게시판 전체 게시물의 마지막 번호
for($ii=0; $ii<count($list); $ii++){
$wr_id = $list[$ii]['wr_id'];
$wr_origin_num = $list[$ii]['wr_11'];
if (trim(substr($today, 2)) == trim(substr($list[$ii]['wr_16'], 2, 9))){ // 오늘날짜와 종료날짜가 같다면
sql_query("UPDATE g5_write_FoodMarket SET wr_num = $wr_origin_num WHERE wr_id = $wr_id ");
sql_query("UPDATE g5_write_FoodMarket SET wr_10 = '' WHERE wr_id = $wr_id ");
}
if ($page > 1) {
if ($list[$ii]['wr_10']){
// sql_query("UPDATE g5_write_FoodMarket SET wr_num = $last_num - 1 WHERE wr_id = {$list[$ii]['wr_id']} ");
}
}
}
}
[/code]
요고입니다.
답변을 작성하려면 로그인이 필요합니다.
말씀해주신것 처럼
끌어올림이 맞습니다.
최초 글을 insert 할때 wr_num 을 따로 wr_11 에 저장해 두었습니다.
이유는 끌어올림시 리스트 최상단으로 넣어주기 위해 wr_num 을 교체해주는데요
다시 원상복귀(wr_datetime 기준) 시키기 위해서 최초 부여받았던 wr_num 을 저장했습니다.
근데, 위에 적었다시피
if($page > 5) {
do something
}
이 소스인데 꼭 6페이지 이상 가야 update 문이 실행되서요
if문 때문인데..딱히 방법이 떠오르지 않아 조언을 구하고 있습니다 ㅠ