리프레시 질문입니다..

리프레시 질문입니다..

QA

리프레시 질문입니다..

본문

정확히 리프레시 질문인지도 사실 모호한데요..

 

게시판 리스트에서

$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

저번 질문과 연관되어 생각해보면 결국 게시글 쌓여서 wr_10 에 필드가 있는 게시글이 5페이지 뒤로 밀려나면

그 게시글을 소위 말하는 끌어올림 하고 싶으신거죠?

한페이지가 10개로 표시되면 50개가 쌓이면 특정게시글을 최상위로 다시 올린다는 그런 뜻맞나요?

 

그렇다면 wr_10 의 글이 있는 게시글의 wr_num  과 가장 최근의 wr_num.. 이건 last_num 으로 저장하신거 같네요

이거 두개의 차이를 구하면 안될까요?

적당히 차이가 생기면 wr_10 이 있는 게시글의 wr_id 를 가지고 위의 쿼리를 수행하는 방법으로  if 문과 쿼리를 작성하시면 되지 싶은데...

 

지금까지 구현한 결과는요
말씀해주신것 처럼
끌어올림이 맞습니다.

최초 글을 insert 할때 wr_num 을 따로 wr_11 에 저장해 두었습니다.
이유는 끌어올림시 리스트 최상단으로 넣어주기 위해 wr_num 을 교체해주는데요
다시 원상복귀(wr_datetime 기준) 시키기 위해서 최초 부여받았던 wr_num 을 저장했습니다.

근데, 위에 적었다시피
if($page > 5) {
 do something
}
이 소스인데 꼭 6페이지 이상 가야 update 문이 실행되서요
if문 때문인데..딱히 방법이 떠오르지 않아 조언을 구하고 있습니다 ㅠ

네 ㅋㅋ crontab 쓰면 해결이 가능할것 같은데요
사실crontab 도 안써봐서,..-_-;;

최대한 해보려고 하는데
조건이 꽤나 까다롭습니다.

page값이 5이상 일때 특정 게시물이 1페이지로만 오면 되는데.
꼭 page값이 5이상 일때 새로고침을 해줘야 update문이
실행되니....휴 ㅠ

if (($list[$ii]['wr_10']) && ($total_count > 125)){
  update 문
}

이렇게 하면 되지 않을까요?ㅋㅋ

아 이러면..안되겠네요;
조건이 만족하는 순간 wr_10 필드에 값이 있는 모든 게시물이
update 되겠군요

전체 소스를 올려주시는게 좋을 듯 합니다.


$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']} ");
			}
		}
	}
}


요고입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,595
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT