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

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



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



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



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

ตารางเป็นลักษณะนี้ครับรูปตาราง





25 ก.ย. 2553 เวลา 12:28 น. 6 1,307

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
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^