테스트 사이트 - 개발 중인 베타 버전입니다

예약 시스템 중복 체크 채택완료

Zi이가람Zone 3년 전 조회 1,942

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개

채택된 답변
+20 포인트
그누위즈

모든 항목에 $text값이 붙는다면

모든 항목에 (예약불가)가 붙는다는 말인가요?

아주 간단합니다.

위에 코드를 보시면

</p>

<p>$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'");</p>

<p>

이렇게 $check_reserv 변수에 쿼리를 실행한 결과를 담으셨는데요?

 

아래 조건에서는

</p>

<p>if((int)$check_reserv > 0){

    $text = "(예약불가)";    

}

else{

    $text = "";

}</p>

<p>

이렇게 해당 변수를 if 문으로 넣으셨습니다.

 

간단합니다.

다음과 같이 if문을 변경하세요.

</p>

<p>if((int)$check_reserv['cnt'] > 0){

    $text = "(예약불가)";    

}

else{

    $text = "";

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

Z
Zi이가람Zone
3년 전
대박... 한방에 해결이 됐네요...
자주 닉네임이 보이시던데 네임드 보스를 뵈는 느낌입니다...
감사합니다ㅠㅠ

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

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

로그인