A-AA+then

อยากได้แนวคิดการ วน แสดงตารางของตารางจองห้องเรียน

1,304
อยากได้แนวคิดการ วน แสดงตารางของตารางจองห้องเรียน 

ผมได้ทำระบบกรจองห้องเรียน ห้องประชุมอยู่ครับละทีนี้การจองสามารถเลือกเวลาโดยกำหนดในลิสบล็อก คือสมมติเลือกจอง

เวลาเริ่มต้อง 08.00   ถึง  12.00 ในห้องเรียนชื่อ A1032 

เมื่อเก็บข้อมูลลงฐานข้อมูลไม่รู้จะเอามาเปรียบเทียบอย่างไรครับว่าเวลา 08.00-12.00 ในห้องเรียน ชื่อว่า A1032 ได้มีคนจองแล้ว (ถ้ามีคนจองก็จะมีแถบสีในตารางในห้องนั้นๆ ครับ  เช่น ถ้ามีคนจองแล้วแต่ยังไม่ได้อนุมัติจากเจ้าหน้าที่ก็จะเป็นสีเหลือง ถ้าอนุมัติแล้วก็จะเป็นสีเขียว)
ตารางเป็นลักษณะนี้ครับรูปตาราง


6 ความคิดเห็น

A---------------------------B
             C----------------------------D

แนวคิดในการตรวจสอบคาบเวลาในการถูกจองก็คือ
1. เวลา C > A และ C < B
2. เวลา B > C และ B < D
เมื่อ A-B เป็นเวลาที่ถูกจองแล้วบนฐานข้อมูล และ C-D เป็นช่วงเวลาที่ต้องการ ถ้าข้อใดข้อหนึ่งในทั้ง 2 ข้อเป็นจริงแสดงว่าคาบเวลานั้นๆไม่สามารถใช้งานได้
1

    ครับ ขอบคุณครับ เดี๋ยวลองทำดูก่อนนะครับ

2

    พอมีตัวอย่างให้ดูบ้างมัยครับ

3

อ้างจากคำตอบที่ #3

    พอมีตัวอย่างให้ดูบ้างมัยครับ


มีครับ แต่คิดว่าเห็นตัวอย่างแล้วจะงงหนักกว่าเก่าอีก เพราะฐานข้อมูลของแต่ละคนอาจไม่เหมือนกัน และผมมักเขียนคำสั่งวับซ้อนกว่าปกติ ดังนั้น เอาแนวคิดไปแหละดีครับ แล้วก็ปรับให้เข้ากับโค้ดของตัวเอง

ลองทำความเข้าใจกับสิ่งที่ผมเขียนให้ดีๆครับจะพบว่ามันไม่ยากเลย
4

// sql ตรวจสอบห้องพักตามจำนวนผู้เข้าพัก และ จำนวนห้องที่ว่าง
$where = "H.`adult`>='".($noOfAdults / $noOfRooms)."' AND
  `room_count`-(SELECT COALESCE(SUM(`noOfRooms`),0)
     FROM `".DB_HOTEL_BOOKING."`
     WHERE `room_id`=H.`id` AND `status`>0 AND
       `checkIn`>='$checkIn' AND `checkIn`<='$checkOut' AND
       '$checkOut'>=`checkIn` AND '$checkOut'<=`checkOut`
     )>='$noOfRooms'";
// query
$sql = "SELECT H.*
   FROM `".DB_HOTEL."` AS H
   WHERE $where
   ORDER BY H.`id` DESC
   LIMIT $start,".$config['hotel']['list_per_page'];
ไม่รู้จะดูรู้เรื่องรึเปล่า นี่คือตัวอย่างใช้จริง http://www.men-message.com
5

55+ งง ครับ
6
^