Copy
echo $currdate = $_GET["currdate"];$query = "select * from g5_write_counsel2 WHERE wr_1='".$currdate."' "; $result = sql_query($query);$mhp = sql_fetch_array($result);$bb = $mhp['wr_3'];$time_array[1] = array("10:30","11:00","11:30","12:00","12:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30");<?php foreach($time_array[$day_type] as $k=>$v) { if ($bb == "1" || $bb == "2"){ $reservation_yn = "N"; }?> <li><?php echo $reservation_yn=="Y"?"(예약가능)":"(예약불가)"?></li><?php }?>
위 코드는 달력에서 날짜를 클릭하면 그날에 예약이 가능한 시간이 나오는 코드입니다.
질문은 이러합니다.
선택한 날짜의 wr_3에 값이 있다면
Copy
if ($bb == "1" || $bb == "2"){ $reservation_yn = "N"; }
이게 동작하게 하고 싶은데요, 그래서
쿼리로 wr_3의 값을 가져오기는 하는데 그 값과 $time_array[1] 이곳의 배열과 연결시킬수가 없더라구요,,
불가능한 연결인가요?
db와 본문의 연결,,, 설명이 좀 어렵네용,,
ㅠㅠ 조언부탁드립니다.
답변 3개 / 댓글 3개
마르스컴퍼니
8년 전
예제 코드입니다.
해당 날짜값에 대한 시간별 wr_3 설정값 유무를 모두 읽어 별도의 배열에 저장한 다음
매칭시키는 방법입니다.
시간이 좀 걸렸습니다.,
해당 사이트에서의 코딩이 아닌, 머릿속에서만 한 코딩이라..
실제 적용시에는 문제가 많을 수 있습니다.
급하게 한 코딩이라, 더 연구하시면 더 나은 코딩이 나올 수 있습니다.
하나씩 이해하신 후, 디버깅 하시면서 적용하시면 될 것 같습니다.
Copy
$currdate = $_GET["currdate"];
$query = "
select *
from g5_write_counsel2
WHERE wr_1 = '{$currdate}'
order by wr_2
";
$result = sql_query($query);
$time_array[1] = array("10:30","11:00","11:30","12:00","12:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30");
while ($row = sql_fetch_array($result)) {
$r_yn_time[$row['wr_2']] = $row['wr_3'];
}
foreach($time_array[$day_type] as $k=>$v) {
if (array_key_exists($v, $r_yn_time)) {
if ($r_yn_time[$v] == "1" || $r_yn_time[$v] == "2") {
$reservation_yn = "N";
echo "<li>예약불가</li>";
} else {
echo "<li>예약가능</li>";
}
}
}
마르스컴퍼니
8년 전
$currdate 를 예를 들어 '2017-10-17'이라고 했을 때,
g5_write_counsel2 에서 wr_1 = '2017-10-17' 의 데이터틀 가져옵니다.
wr_3 에는 '1' 또는 '2' 값이 있는데, '1' 인 경우에는 "예약가능", '2'는 "예약불가" 의 의미입니다.
wr_3 은 해당 날짜에 대한 '1'값 또는 '2' 값이기 때문에, 시간부분과 매칭되지는 않습니다.
이 부분에 대한 설명이 더 있어야 될 듯 합니다.
답변에 대한 댓글 1개
humanb2box
8년 전
8년 전
코드가 이해가 안가지만 현재 작성하신 코드에 주석을 달아봅니다.
Copy
<?phpecho $currdate = $_GET["currdate"]; // get parameter 로 currdate 를 받아와서 $currdate에 대입합니다.$query = "select * from g5_write_counsel2 WHERE wr_1='".$currdate."' ";
$result = sql_query($query);
$mhp = sql_fetch_array($result);// g5_write_counsel2 테이블에 wr_1값이 넘겨받은 currdate와 동일하면 // 레코드를 불러와 1개의 Row 만추출후 $bb = $mhp['wr_3'];//위에서 불러온 1개Row의 wr_3값을 $bb에 집어넣습니다.$time_array[1] = array("10:30","11:00","11:30","12:00","12:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30");
//$time_array[1] 의 위치에// array로 2차원배열을 시간값으로 셋팅합니다.//foreach로 time_array를 찾아서 $key와 $value를 대입하는데//$day_type은 어디서 온값일까요?
foreach($time_array[$day_type] as $k=>$v)
{ //위에서 대입했던 $bb의 값이 1 또는 2일때
// $reservation_yn = 'N'이고 // 그외에는 reservation_yn 에 무엇이 들어갈까요?
if ($bb == "1" || $bb == "2"){
$reservation_yn = "N";
}
?>
<li><?php echo $reservation_yn=="Y"?"(예약가능)":"(예약불가)"?></li>
<?php
}
?>
답변에 대한 댓글 2개
humanb2box
8년 전
10번째 줄 day_type는 날짜를 선택할때 포함됩니다. 1~6까지 숫자로 더해집니다.
ex)201710261 이런식으로 날짜의 끝에 붙습니다.
15번째줄에 대한 답변은 y로 됩니다.
프로세스는 이러합니다.
달력에서 날짜를 선택하면 오른쪽에 해당 날짜에 시간(예약가능)이 표시됩니다.
시간을 선택하고 완료하면
wr_1에는 날짜가 wr_2에는 시간이 wr_3에는 예약 여부가 선택됩니다.(1,2,3)
13번째 줄처럼 1 또는 2가 포함된다면 예약 불가가 되었으면 하는 바입니다.
g5_write_counsel2테이블에서 wr_3와 wr_2에 값이 있다면 $time_array의 배열들과 비교해서
예약 불가가 되려고 하는건데
db와 본문의 배열이 연결이 되는지가 ㅠㅠ 궁금합니다.
ex)201710261 이런식으로 날짜의 끝에 붙습니다.
15번째줄에 대한 답변은 y로 됩니다.
프로세스는 이러합니다.
달력에서 날짜를 선택하면 오른쪽에 해당 날짜에 시간(예약가능)이 표시됩니다.
시간을 선택하고 완료하면
wr_1에는 날짜가 wr_2에는 시간이 wr_3에는 예약 여부가 선택됩니다.(1,2,3)
13번째 줄처럼 1 또는 2가 포함된다면 예약 불가가 되었으면 하는 바입니다.
g5_write_counsel2테이블에서 wr_3와 wr_2에 값이 있다면 $time_array의 배열들과 비교해서
예약 불가가 되려고 하는건데
db와 본문의 배열이 연결이 되는지가 ㅠㅠ 궁금합니다.
8년 전
제가
// 그외에는 reservation_yn 에 무엇이 들어갈까요?
라고 적은건..
그자리에 값이 필요해서 적은겁니다.
제가 주석을 넣으자리에
$reservation_yn = 'Y';
라고 하면 정상작동할겁니다.
// 그외에는 reservation_yn 에 무엇이 들어갈까요?
라고 적은건..
그자리에 값이 필요해서 적은겁니다.
제가 주석을 넣으자리에
$reservation_yn = 'Y';
라고 하면 정상작동할겁니다.
답변을 작성하려면 로그인이 필요합니다.
그럼 매칭이 될까요? 아무리 머리를 굴려도 답이안나와서용..
each이거로 매칭해야할까용? ㅠㅠ