mysql 질문 채택완료
좌석예약시스템 같은 것을 구축하려고 합니다.
1 2 3 4 5 6
7 8 9 .....
이렇게 좌석이 있고 로그인 후 각 좌석이 예약돼있으면 빨간색, 비어있으면 파란색으로 표기하려고 합니다.
문제는 해당 좌석 status를 받아와야 된다는건데
mysql에 테이블을 만들고, 테이블 구조를
---N이면 비어있고, Y면 차있다는 뜻---
seatno seatstatus
1 N
2 Y
3 N
4 Y
이런식으로 구성하여 div class 값을 available, unavailable 두개로 만들어 만약 1번 좌석이 seatstatus 값이 Y면 if의 echo 문을 활용해 div class="" 값에 available을, 아니라면 unavailable을 띄우도록 하려는데 감이 안오네요.
일일이 1번 좌석부터 n번 좌석까지 select 구문을 활용해 좌석값을 불러와 변수에 저장해야할까요?
$sql = "select seatstatus from seat_db where seatno=1"
으로 하고 $seat1status=db값
..... n번좌석까지 쭉쭉쭉......
어떻게 해야 효율적으로 코드를 작성할 수 있을까요.
답변 3개
<?php
$sql = "select seatstatus from seat_db order by seatno";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
if ($row['seatstatus'] == 'Y')
$class = "unavailable";
else
$class = "available";
?>
<div class="<?php echo $class ?>">
<?php echo $row['seatno'] . '번 좌석' ?>
</div>
<?php } ?>
답변에 대한 댓글 3개
if ($row['seatno'] % 7 == 0)
echo "<br>";
}
※ https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=97609
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
다음과 같은 방식으로 구현해 볼 수 있을 것 같습니다.
1. 데이터베이스 연결 설정:
</p>
<p>// 예시 데이터베이스 연결 설정
$db_host = "localhost";
$db_user = "사용자명";
$db_pass = "비밀번호";
$db_name = "데이터베이스명";</p>
<p>$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);</p>
<p>if (!$conn) {
die("데이터베이스 연결 실패: " . mysqli_connect_error());
}
그누보드에서는 이미 DB설정이 되어 있으므로 패스하셔도 됩니다.
2. 좌석 상태 가져오기
</p>
<p>function getSeatStatus($seatNumber, $conn) {
$sql = "SELECT seatstatus FROM seat_db WHERE seatno = $seatNumber";
$result = mysqli_query($conn, $sql);</p>
<p> if ($result) {
$row = mysqli_fetch_assoc($result);
if ($row['seatstatus'] == 'Y') {
return 'available'; // 좌석이 예약되어 있음
} else {
return 'unavailable'; // 좌석이 비어 있음
}
} else {
return 'error'; // 오류 발생
}
}</p>
<p>// 사용 예시:
$seatNumber = 1; // 가져올 좌석 번호
$seatStatus = getSeatStatus($seatNumber, $conn);
모든 좌석을 가져오는 대신, 필요한 좌석만 가져오는 것이 효율적 이라 생각합니다.
3. 웹 페이지에 좌석 표시하기
</p>
<p><div class="seat <?php echo $seatStatus; ?>">1</div>
<div class="seat <?php echo $seatStatus; ?>">2</div>
<!-- 나머지 좌석들도 동일한 방식으로 표시 -->
<?php echo $seatStatus; ?> 부분은 좌석의 상태에 따라 "available" 또는 "unavailable"을 출력하게 되고, 이렇게 하면 각 좌석을 빨간색 또는 파란색으로 표시할 수 있습니다.
참고하셔서 원하시는 형태로 구현하시면 되지 않을까 생각합니다.
답변에 대한 댓글 2개
친절한 답변 대단히 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
좌석이 7개씩 줄바꿈처리가 돼있는데 혹시 이 경우는 seatno에 따라 어떻게 처리하면 될까요?
총 21개의 좌석이 있습니다.
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21