함수 질문입니다~~

함수 질문입니다~~

QA

함수 질문입니다~~

본문


function last_agency () {
    global $bo_table;
    global $g5;
    global $write_table;
    global $update_agency; 
    if ($row['cnt'] >= $update_agency){
      // 6페이지 첫번째 게시물 구하는 쿼리
      $sql = sql_fetch("SELECT * FROM {$write_table} WHERE wr_is_comment = 0 ORDER BY wr_11 ASC LIMIT $update_agency,1");
      $update_article = $sql['wr_id'];
      
      // 첫번째 게시물 구하는 쿼리
      $sql_a = sql_fetch("SELECT * FROM {$write_table} WHERE wr_is_comment = 0 ORDER BY wr_11 limit 1");
      $update_wr11 = $sql_a['wr_11'] - 1;
      // 만약에 6페이지 첫번째 게시물의 wr_10값이 있다면
      if ($sql['wr_10'] == 'agency') {
        sql_query("UPDATE {$write_table} SET wr_11 = $update_wr11 WHERE wr_id = $update_article");
        // 1페이지로 삽입된 게시물이 해당 게시판의 bo_count_write 에 +1 이 되므로 다시 -1 해준다
        //sql_query("UPDATE {$g5['board_table']} SET bo_count_write = bo_count_write -1 WHERE bo_table = '$bo_table'");
      }
    }
  }

  $sql_last = sql_fetch("SELECT * FROM {$write_table} WHERE wr_is_comment = 0 ORDER BY wr_11 ASC LIMIT $update_agency,1");
  if ($sql_last['wr_10'] == 'agency') {
    // 함수 실행
    last_agency();
    echo "함수 실행한다";
  }

 

last_agency 를 

마지막 if문인 ($sql_last['wr_10'] == 'agency') 이 거짓일 때까지

실행시켜주려면..

어떻게 짜야할까요;

 

$sql_last['wr_10'] 필드에 agency가 있으면 계속 함수를 실행하고

싶은데.. 잘 모르겠습니다..!

 

 

이 질문에 댓글 쓰기 :

답변 1

원하는 게시물을 리스트로 가져와야 합니다.


$sql=sql_query("SELECT * FROM {$write_table} WHERE wr_is_comment = 0 ORDER BY wr_11 ASC LIMIT $update_agency,1");
while($row=sql_fetch_array($sql)) {
   if ($row['wr_10'] == 'agency') {
      // 함수 실행
      last_agency();
      echo "함수 실행한다";
   } else {
      break;
   }
}

제가 위의 함수를 적용한 게시판은
새글을 작성하면 wr_num 을 wr_11에 복사해서
list.php 에서 해당 게시판은 wr_11로 정렬시킵니다.

5페이지 이내에만 머물러 있어야 하는 게시물이 존재하기 때문인데요.
5페이지 이내에 등등 조건은 다 적용했습니다.

위의 소스는 write_update.php 안에 들어가 있구요.
$w == '' 일때 실행됩니다.

다만, 문제가 하나 있는데요.
write_update가 게시글 하나를 insert 시킨 뒤에 last_agency() 라는 함수가 나오는데요.

게시글 하나가 insert 된 뒤에 조건이 맞아 함수가 실행되면
리스트에 쌓이는 게시물 순서는 아래와 같습니다.

* 함수로 인해 1페이지 첫번째로 온 게시물.
* 새글
* .
* .

이렇게 새글이 insert 된 뒤에 6페이지 첫번째 게시물이 1페이 첫번째 게시물로 온다면
5페이지 마지막 게시물이 다시 6페이지 첫번째 게시물로 가는 상황이 발생하는데요.

이때 다시 함수를 실행시켜주려면 어떻게 로직을 구현해야 할까요?ㅠ

이렇게 새글이 insert 된 뒤에 6페이지 첫번째 게시물이 1페이 첫번째 게시물로 온다면 
5페이지 마지막 게시물이 다시 6페이지 첫번째 게시물로 가는 상황이 발생하는데요. 

=> 그럼 6페이지 첫번째 게시물의 wr_10의 agency 만 삭제하면 되는거 아닌가요??

위의 함수가 실행되는 게시판은
게시물 종류가 2가지 입니다.

일반게시물과 돈받고 게시해주는 게시물
이렇게 2가지 입니다.

위 2가지 게시물은 기본 등록일 기준으로 정렬되구요
돈받고 게시해주는 게시물은
5페이지 이내에만 머물러 있어야 합니다.

그렇기 때문에..
제가 여쭤본거구요 ㅠ

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

회원로그인

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