채택완료

sql 질문 드립니다.

방문자가 예약접수를 할때 기존에 등록된 자료중에서

"완료" 이고 "wr_9"값이 같고 wr_1(입실날짜) 에서 wr_2(퇴실날짜) 사이로 예약된 자료가 있을때에는

"이미 예약된 룸입니다." 알럿창을 띄우려고 하는데요.

 

완료이면서 wr_9 값이 같은 자료는 찾아서 잘 적용이 되는데

입실 날짜(wr_1)와 퇴실날짜(wr_2) 사이에 있는 것까지 찾아서 적용을 시킬려니까.. 

잘 안되에요.. between 을 어떻게 써야 될까요.

조언 좀 부탁드립니다 ~

 

Copy
list($acount) = mysql_fetch_array(mysql_query("select count(wr_id) from $write_table where wr_8='완료' and wr_9='$wr_9' and wr_1='$wr_1' and wr_2='$wr_2' "));  if($acount >=1){  alert('이미 예약된 룸입니다.');  return false;	}}

 

 

 

 

|

답변 1개 / 댓글 8개

채택된 답변
+20 포인트

Copy
$now=time();list($acount) = mysql_fetch_array(mysql_query("select count(wr_id) from $write_table where wr_8='완료' and wr_9='$wr_9' and wr_1>='".$now."' and wr_2<='".$now."' "));

로 하시면 되나요?

답변에 대한 댓글 8개

방문자가 wr_1 입실일을 선택하고 wr_2에 퇴실일을 입력하거든요.
그때 기존 자료 중에서 wr_1 과 wr_2 날짜사이에 것을 찾아서 알럿을 띄우는거에요..
테스트 해보니.. 체크 못하고 그냥 접수가 되어버리네요..^^;;
혹시 wr_1, wr_2의 데이터형식이 2014-12-30 처럼 들어가나요? 아님 unixtimestamp 로 들어가나요?
$('#wr_1').datepicker({
showOn: 'button',
buttonImage: '<?=$board_skin_url?>/img/calender.png',
buttonImageOnly: true,
buttonText: "달력",
changeMonth: true,
changeYear: true,
showButtonPanel: true,
yearRange: 'c-99:c+99',
minDate: '+0d',
maxDate: '+90d'
});

기본 제이쿼리 달력쓰거든요

20141230 이렇게 출력 되더라구요
그럼 $now=time();을
$now=date("Ymd"); 로 바꿔보시겠어요
사용자가 입력한 값인데
말씀하시는 데이터 값은.. 현재 날짜데이터로 인식하는게 아닌지..
아 사용자 입력값이 있군요. 그럼 date의 두번째 인자에 그 값을 넣어주세요. 혹시 입력한값이 문자열값이면 strtotime함수를 써주세요
잘 안되네요...
wr_1(입실날짜) wr_2(퇴실날짜) 사이로 등록된 자료가 등록되어 있다고 가정하고
다른 방문자가 예약을 할 때 저 기간 사이 날짜에 입실이든 퇴실이든 하나라도 포함이되면 알럿이 떠야 되는데..



$wr_1 = $_POST['wr_1'];
$wr_2 = $_POST['wr_2'];

list($acount) = mysql_fetch_array(mysql_query("select count(wr_id) from $write_table where wr_8='완료' and wr_9='$wr_9' and wr_1<='".$_POST['wr_1']."' and wr_2>='".$_POST['wr_2']."' "));


if($acount >=1){
alert('이미 예약이 완료된 룸입니다.');
return false;
}
되긴 되는데요..
등록된 입/퇴실 기간 하고 상관 없는 날짜를 할때도 or 때문인지 알럿이 뜨네요..

답변을 작성하려면 로그인이 필요합니다.