최신글에서 where절에 $options 쿼리

최신글에서 where절에 $options 쿼리

QA

최신글에서 where절에 $options 쿼리

본문

/lib/latest.lib.php

 


if( $bo_table === 'event' ) {
  $today = date('Ymd');
  $options = " and (wr_9 <= {$today} or (wr_9 > {$today} and wr_8 = 'Y')) and (wr_10 > 0 and wr_10 >= {$today}) ";
  echo $options;
}
 
$tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 {$options} order by wr_num limit 0, {$rows} ";
 
// echo $sql;
 
$result = sql_query($sql);

 

여분필드의 값에 따라 최신글 출력을 컨트롤 하려고 합니다...

 

sir 에 올라온 최신글 여분필드 조건에 따라 출력하는 방법은 봤는데요;;

 

각 필드의 값에 맞는 경우 출력하는 건 sql쿼리문에 추가 할 수 있겠는데....

 

쿼리에서 where절에 if문으로 걸러내야하는... 조건이 복잡해서... 구글링도 해보고 쿼리도 짜봤는데 원하는대로 결과물이 나오질 않아 질문올려봅니다;;ㅠㅠㅠ

 

https://sukkyu.tistory.com/65
 

https://inforyou.tistory.com/28

 

제가 구글링으로 참고했던 링크들입니다..;;

 

시작날짜와 종료날짜, 미리보기 총 3개의 여분필드를 사용중인 이벤트 게시판의 최신글인데

 

구하려는 쿼리의 조건을 php if문 처럼 짜본다면...


if( wr_9 >= {$today} ){ // 시작 날짜가 오늘 날짜 이후인 경우
  $options .= " and wr_9 >= {$today} "; // 시작 날짜가 지난 게시물
}else{ // 시작 날짜가 오늘 날짜 이전인 경우
  if( wr_8 === 'Y' ) {  // 미리보기에 체크되어 있는 경우
    $options .= " and (wr_9 < {$today} and wr_8 = 'Y') "; // 시작 날짜가 안됐고, 미리보기에 체크된 게시물
  }
}
 
if( wr_10 != '' ) // 종료 날짜에 값이 있을 경우
  $options .= " and wr_10 >= {$today} "; // 종료 날짜가 지나지 않은 게시물

이런식으로 될 것 같은데... 이걸 sql 쿼리 한문장으로 끝내려니 어렵네요ㅠㅠ

 

위 조건들이 부합하는 게시물들만 불러오고 싶습니다...;;

 

정리하자면...

((시작날짜가 지난 게시물) or (시작날짜 지나진 않았지만 미리보기값이 Y인 게시물)) and

(종료날짜에 값이 있을 경우 종료날짜가 지나지 않은 게시물)들을 출력

 

where절에서의 if문 사용... 글들을 보면서 쿼리를 짜보고 값도 바꿔보고... 이것 저것 해봤는데 원하는대로 출력이 안되네요;;ㅠㅠ

이 질문에 댓글 쓰기 :

답변 1

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

회원로그인

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