A-AA+then

ขอความช่วยเหลือหน่อยครับ เกี่ยวกับการ search แบบ join ตารางครับ

1,739
คือว่าผมมีตารางอยู่ 3 ตารางครับ
1. roomtype
- roomtype_id PK
- roomtype_name
2. room
-room_id PK
-roomtype_id
-status (ว่าง,ไม่ว่าง)
3. roomdetail
-room_id PK
-book_id PK
-check_in
-check_out

จากรูปครับถ้าหากว่าผมเลือกประเภทห้องพัก เลือกวันที่ check in , check out แล้วกด submit แล้วต้องเข้าไปเช็ค ที่ตาราง room ว่ามีห้องว่างหรือป่าว ถ้าหากว่าว่างก็วิ่งไปเช็ค ที่ตาราง roomdetail ว่าวันที่ check in , check out ว่ามีห้องอะไรว่างบ้าง แล้วนำมาโชว์

ผมเขียนอย่างนี้ถูกหรือป่าวครับ
            <?
            include "Connections/conn_search.php";
            $query_rsSearch="select * from room,roomtype,roomdetail";
            /*$query_rsSearch="SELECT * FROM room WHERE room.roomtype_id = ".$Lroomtype." NOT EXISTS (SELECT * FROM roomdetail WHERE roomdetail.room_id = room.room_id AND (roomdetail.check_in >=".$checkin."  AND roomdetail.check_out <=".$checkout.") )";*/
            $query_rsSearch= 'EXPLAIN select t.roomtype_name,r.room_id from roomtype t,room r, roomdetail d where t.roomtype_name = \'".$Lroomtype."\' and d.check_out < ".$checkin." and r.status = \'1\' and t.roomtype_id=r.roomtype_id and r.room_id = d.room_id';
            mysql_select_db($newDB, $connector);
            $rsSearch= mysql_query($query_rsSearch, $connector) or die(mysql_error());
            $row_rsSearch=mysql_fetch_assoc($rsSearch);
            $totalRows_rsSearch=mysql_num_rows($rsSearch);
          ?>


หรือว่าใครพอจเแนะนำได้บ้างครับ ขอบคุณคร้าบ

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

คือว่าจะให้มันแสดงหน้าเดียวกันนะครับรูปนี้ต่อจากรูปข้างบนเมื่อเลือก checkin checkout ประเภทห้องพักแล้วก็เช็คแล้วใ้ห้แสดงข้างล่างนี้นะครับ
1

ไม่มีคนอยู่เลยหรอคร้าบ
2

เงียบกันจังเลยครับ
3

ไม่ตอบ เพราะไม่รู้จะตอบยังไงมากกว่า

ลองนำ query ไปทดสอบบน phpmyadmin ดูสิครับ ว่าคำตอบที่ได้มันถูกต้องตามที่ต้องการหรือเปล่า

ปกติแล้วเราไม่ต้องตรวจสอบวันที่ check out ครับ เพราะโดยปกติเราจะไม่รู้ว่าเขาจะอยู่กี่วัน นอกเสียจากจะรู้จริงๆ

การตรวจสอบว่าห้องว่างหรือเปล่า ก็เอาเวลาที่ลูกค้าจะเข้า มาหาว่า ห้องว่างหรือไม่ เท่านั้น ส่วน query จะเป็นอย่างไรนั้นมันก็แล้วแต่การออกแบบตาราง ซึ่งผมคงตอบไม่ได้

SELECT room_id FROM room_table WHERE $chkout < chkin_date OR $chkin > chkout_date

ส่วนการแสดงผลการค้นหา ถ้าจะแสดงในหน้าเดิม คงต้องศึกษา Ajax ถึงจะทำได้ มีตัวอย่างบนเว็บครับ
4

ขอบคุณครับพี่
5
^