예약 시스템 중복 체크
본문
for($i=6;$i <= 22;$i++){
$text = "";
$time = $i.":00~".($i+1).":00";
$check_reserv = sql_Fetch("select count(*) as cnt from g5_write_04 where wr_1 = '$wr_1' and wr_3 = '$wr_3' and wr_4 = '$wr_4' and wr_7 = '$time'");
if((int)$check_reserv > 0){
$text = "(예약불가)";
}
else{
$text = "";
}
echo "<option value='".$time."' >".$time.$text."</option>";
}
그누보드에서 도움을 받아서 예약 시스템에 적용하는 내용입니다... Ajax로 예약 장소, 예약 코트, 예약 날짜 정보를 받고, for문 안에서 $time이라는 변수를 선언해서 시간대가 변해가면서 체크하는 쿼리를 작성하였는데 최종적으로 echo 부분에 모든 항목에 $text값이 붙어서 출력되는 현상이 있습니다ㅠㅠ for 문 안에서 데이터들을 찍어보는 방법도 몰라서 질문 드립니다ㅠ
답변 1
모든 항목에 $text값이 붙는다면
모든 항목에 (예약불가)가 붙는다는 말인가요?
아주 간단합니다.
위에 코드를 보시면
$check_reserv = sql_Fetch("select count(*) as cnt from g5_write_04 where wr_1 = '$wr_1' and wr_3 = '$wr_3' and wr_4 = '$wr_4' and wr_7 = '$time'");
이렇게 $check_reserv 변수에 쿼리를 실행한 결과를 담으셨는데요?
아래 조건에서는
if((int)$check_reserv > 0){
$text = "(예약불가)";
}
else{
$text = "";
}
이렇게 해당 변수를 if 문으로 넣으셨습니다.
간단합니다.
다음과 같이 if문을 변경하세요.
if((int)$check_reserv['cnt'] > 0){
$text = "(예약불가)";
}
else{
$text = "";
}