Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยดู Query ให้หน่อยครับ ทำ web ยืมห้องประชุม และ ยืมโปรเจคเตอร์



 

ช่วยดู Query ให้หน่อยครับ ทำ web ยืมห้องประชุม และ ยืมโปรเจคเตอร์

 



Topic : 027556



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมกำลังจะทำโปรแกรมจองห้องประชุม และ โปรเจคเตอร์ อ่ะครับ คือให้จองโดยเลือกช่วงเวลาได้เลย อย่างเช่น 2009-08-09 08:00:00 ถึง 2009-08-09 10:00:00 จ้องห้องที่ 1 จ้องโปรเจคเตอร์เครื่อที่ 1 แต่ต้องการเช็คว่าเมื่อมีการจองซำ หรือคาบเกี่ยวกับเวลาที่จองไว้แล้ว และ โปรเจคเตอร์ กับ ห้อง ที่จองไปแล้ว ไม่ให้สามารถจองได้ คิวรี่ อย่างไงอ่ะครับ ช่วยหน่อยนะครับ คิดแล้วครับคิดมาหลายวันแล้ว คิดไม่ออก จริง ๆ ขอบคุณครับ

ตาราง

วันเวลาที่จอง(DateTime) --- วันเวลาที่คืน(DateTime) ------ ห้อง -- โปรเจคเตอร์
2009-08-09 08:00:00 -------- 2009-08-09 10:00:00 ---------- 1 --------- 1
2009-08-09 08:00:00 -------- 2009-08-09 10:00:00 ---------- 2 --------- 2
2009-08-09 09:00:00 -------- 2009-08-09 11:00:00 ---------- 3 --------- 3
2009-08-09 09:00:00 ------- 2009-08-09 11:00:00 ---------- 1 --------- 3 ผิดเนื่อกจาก ใช้ห้อง ในเวลาคาบเกี่ยวกันกับ record ที่ 1


บางครั้ง อาจจะยืมแค่ห้อง ไม่ยืม โปรเจคเตอร์
บางครั้ง อาจยืมแค่โปรเจคเตอร์ ไม่ยืมห้อง



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-05-21 14:27:32 By : gazib View : 1598 Reply : 14
 

 

No. 1



โพสกระทู้ ( 1,035 )
บทความ ( 0 )



สถานะออฟไลน์


ก็ต้องทำเก็บการจองไว้ด้วยครับ แล้วจากนั้นก็ทำการนำ field หรือ tb ที่เก็บการจองมาตรวจสอบว่ามีการจองแล้วหรือไมโดยใช้วันที่มาเป็นตัวตัดสินอีกที่ว่า วันที่ 20/05/09 มีการจองแล้วหรือยัง และจองเก็บการยกเลิกใช้ด้วยน่ะครับ เพราะถ้าเป็นวันเดียวกันอาจจะมีปัญหา
Quote:
บางครั้ง อาจจะยืมแค่ห้อง ไม่ยืม โปรเจคเตอร์
บางครั้ง อาจยืมแค่โปรเจคเตอร์ ไม่ยืมห้อง

ถ้าเป็นแบบที่คุณบอกมาต้องเก็บเพิ่มอีกครับ ทั้งส่วนของห้องและ โปรเจคเตอร์ ต้องเก็บการจองและ การคืนด้วยครับ

ปล.ถ้าจะให้ง่ายต่อการเขียนโปรแกรมต้อง ดีไซ db ให้ดีน่ะครับไม่อย่างงานเข้าแน่






Date : 2009-05-21 14:50:04 By : kanchen
 


 

No. 2



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


หลักการของผม คือ จะ Query ข้อมูลออกมา ถ้ามีค่า มากกว่า 1 หรือเท่ากับ 1 แสดงว่า วันเวลา และ ห้อง และ โปรเจคเตอร์ ถูกจ้องแล้วในช่วงเวลานั้น ๆ

ในตารางเก็บค่าดังนี้
1. วันเวลาที่จอง Type DateTime
2. วันเวลาที่คืน Type DateTime
3. ห้องที่ใช้ Type vachar
4. โปรเจคเตอร์ใช้เครื่องไหน Type vachar

โปรเจคเตอร์ มี 3 เครื่อง
ห้อง มี 4 ห้อง
Date : 2009-05-21 15:16:13 By : gazib
 

 

No. 3



โพสกระทู้ ( 1,035 )
บทความ ( 0 )



สถานะออฟไลน์


ขั้นแรกก็ทำการ select ข้อมูลมาก่อนน่ะครับจากนั้นก็
1.ทำการตรวจสอบคือ ห้องครับ โดยเอาค่าของวันที่คืนเป็นตัวเช็คครับแบบนี้ วันเวลาที่จอง < วันเวลาที่คืน ใหกลับไปทำใหม่
2.ทำการตรวจสอบคือ โปรเจคเตอร์ ใช้หลักการเดียวกับข้อ1 น่ะครับ
Date : 2009-05-21 21:52:39 By : kanchen
 


 

No. 4

Guest


ถ้าผมไม่สนใจ โปรเจคเตอร์ กับ ห้อง ล่ะครับ

ผมต้องการแค่ ช่วงเวลาไม่ให้ช่วงเวลามันซ้ำกัน และ ต้อง ไม่คร่อมเวลากันด้วยอะครับ Query อย่างไงอะครับ

เช่น
Select *
from table
where วันเวลาที่จอง >= '2009-08-09 08:00:00' AND วันเวลาที่คืน <= '2009-08-09 11:00:00'

มันออกมาแค่ 2009-08-09 08:00:00 และ เวลานี้ 2009-08-09 11:00:00 เท่านั้น
ส่วน เวลา ส่วน 2009-08-09 06:00:00 ถึง 2009-08-09 09:00:00 มันไม่ออก
และ 2009-08-09 09:00:00 ถึง 2009-08-09 12:00:00 มันก็ไม่ออก

จะ Query อย่างไงอ่ะครับ ช่วยหน่อยนะครับ
Date : 2009-05-22 11:34:38 By : gazib
 


 

No. 5



โพสกระทู้ ( 1,035 )
บทความ ( 0 )



สถานะออฟไลน์


Quote:
ผมต้องการแค่ ช่วงเวลาไม่ให้ช่วงเวลามันซ้ำกัน และ ต้อง ไม่คร่อมเวลากันด้วยอะครับ Query อย่างไงอะครับ

ไม่ค่อยเข้าใจครับ ขอตัวอย่างหน่อย
Date : 2009-05-22 11:42:46 By : kanchen
 


 

No. 6



โพสกระทู้ ( 156 )
บทความ ( 0 )



สถานะออฟไลน์


ลองใช้ betrween ดูดิ ได้ป่ะ ระหว่างเวลานี้ ถึงเวลานี้ลองดูนะไม่รุ้ว่าจะตรงกับที่ต้องการรึป่าว
Date : 2009-05-22 12:19:25 By : sillyman24
 


 

No. 7



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


Code
ผมต้องการแค่ ช่วงเวลาไม่ให้ช่วงเวลามันซ้ำกัน และ ต้อง ไม่คร่อมเวลากันด้วยอะครับ Query อย่างไงอะครับ

ไม่ค่อยเข้าใจครับ ขอตัวอย่างหน่อย


ความหมายของผมก็คือ ในตารางของผม จะมีเหลือแค่ 2 field เท่านั้น
1. เวลาที่จอง
2. เวลาคืน

** หลักการของผมคือ ผู้ใช้(user) จะระบุเวลาที่จอง กับเวลาที่ คืนเอง นะครับ **

เช่น 8.00 ถึง 12.00 ถูกจองไปแล้ว
ที่นี้ถ้ามีคนจอง 10.00 ถึง 13.00 ก็ต้องจองไม่ได้ แต่ว่าตอนที่เรา Query มันจะต้องขึ้นมา 1 แถว(recode) คือ 8.00 ถึง 12.00
หรือ
ทีนี้ถ้ามีคนจอง 7.00 ถึง 10.00 ก็ต้องจองไม่ได้ แต่ว่าตอนที่เรา Query มันจะต้องขึ้นมา 1 แถว(recode) คือ
8.00 ถึง 12.00


Code
ลองใช้ betrween ดูดิ ได้ป่ะ ระหว่างเวลานี้ ถึงเวลานี้ลองดูนะไม่รุ้ว่าจะตรงกับที่ต้องการรึป่าว


betrween ใช้ไม่ได้ครับ[ หรือเปล่า?? ] เพราะว่า เวลาที่จอง กับเวลาที่คืน มันไม่ได้อยู่ field(column) เดียวกัน อ่ะครับ
Date : 2009-05-22 14:16:26 By : gazib
 


 

No. 8



โพสกระทู้ ( 1,035 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้ mysql_num_rows ช่วยไงครับนับแถวใน db โดยการ select ขอมุลมาทั้งหมดโดยมีเงือนไข
select * from tb_name where เวลาที่คืน
จากนั้นก็เอาให้เงือนไขเป็นแบบนี้ วันเวลาที่จอง(เป็นเวลาที่รับค่ามา) < วันเวลาที่คืน(เวลาที่ select ออกมาครับ)
Date : 2009-05-22 15:48:27 By : kanchen
 


 

No. 9

Guest


ขอบคุณ คุณ KanJi มากครับ

Code
ใช้ mysql_num_rows ช่วยไงครับนับแถวใน db โดยการ select ขอมุลมาทั้งหมดโดยมีเงือนไข
select * from tb_name where เวลาที่คืน
จากนั้นก็เอาให้เงือนไขเป็นแบบนี้ วันเวลาที่จอง(เป็นเวลาที่รับค่ามา) < วันเวลาที่คืน(เวลาที่ select ออกมาครับ)


ผิดตั้งแต่ตรงนี้แล้วอ่ะครับ
Code
select * from tb_name where เวลาที่คืน


สมุติว่ามีข้อมูลดังนี้
08.00 ถึง 10.00
10.00 ถึง 12.00
12.00 ถึง 15.00

แล้วผมใช้คำสั่งนี้
Code
select * from tb_name where '09.00'

มันก็จะไม่มีข้อมูลอะไรออกมาครับ เพราะว่า 09.00 มันไม่มีอยู่ใน tb_name แต่มันอยู่ระหว่าง 08.00 ถึง 10.00

Date : 2009-05-22 16:28:03 By : gazib
 


 

No. 10



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


แก้ไขครับ

Code
select * from tb_name where เวลาที่คืน = '09.00'

มันก็จะไม่มีข้อมูลอะไรออกมาครับ เพราะว่า 09.00 มันไม่มีอยู่ใน tb_name แต่มันอยู่ระหว่าง 08.00 ถึง 10.00 ซึ่ง ถ้าจะถูกมันต้อง ขึ้นมา 1 แถว คือ 08.00 ถึง 10.00

Date : 2009-05-22 16:37:52 By : gazib
 


 

No. 11



โพสกระทู้ ( 1,035 )
บทความ ( 0 )



สถานะออฟไลน์


กำผิดแล้วครับ ต้องเป็นแบบนี้ครับ
select * from tb_name(ชื่อ table ครับ) where field_time(ฟิลของการคืนครับ) = 'เวลาที่คืน(เป็นเวลาที่ต้องการ)';
คิดว่าจะรู้สะอีก
ปล.select แต่ฟิลที่เป็นวันเวลาที่คืนนะครับจากนั้นก็ทการตรวจสอบเลย
Date : 2009-05-22 16:39:01 By : kanchen
 


 

No. 12

Guest


Code
select * from tb_name(ชื่อ table ครับ) where field_time(ฟิลของการคืนครับ) = 'เวลาที่คืน(เป็นเวลาที่ต้องการ)';

ปล.select แต่ฟิลที่เป็นวันเวลาที่คืนนะครับจากนั้นก็ทการตรวจสอบเลย


สมุติว่ามีข้อมูลดังนี้
08.00 ถึง 10.00
10.00 ถึง 12.00
12.00 ถึง 15.00

ถ้า $sql = " select * from tb_name เวลาที่คืน = '0.9.00' "
มันก็จะไม่มีข้อมูลอะไรออกมาครับ เพราะว่า 09.00 มันไม่มีอยู่ใน tb_name แต่มันอยู่ระหว่าง 08.00 ถึง 10.00

Code
จากนั้นก็เอาให้เงือนไขเป็นแบบนี้ วันเวลาที่จอง(เป็นเวลาที่รับค่ามา) < วันเวลาที่คืน(เวลาที่ select ออกมาครับ)


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

ผมว่า ผมคงไม่เข้าใจที่คุณ KanJi พูดมาแน่ ๆ เลย ( มือใหม่อ่ะครับ )
หรือ
ผมอธิบาย ไม่เข้าใจก็ไม่รู้ อ่ะครับ
Date : 2009-05-25 14:01:32 By : gazib
 


 

No. 13

Guest


เย้ ๆ ๆ ๆ ได้แล้วครับ

ให้

@StartDate เป็นเวลาที่ต้องการจอง
@EndDate เป็นเวลาที่ต้องการคืน

WHERE StartDate < @EndDate
AND EndDate > @StartDate
AND Room = 1
AND Projector = 1


ขอบคุณสำหรับ คำตอบทุกท่านครับ
Date : 2009-05-26 15:04:43 By : gazib
 


 

No. 14



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์


มาร่วมยินดีด้วยคนคับๆๆ
Date : 2009-05-27 14:47:42 By : manchini
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดู Query ให้หน่อยครับ ทำ web ยืมห้องประชุม และ ยืมโปรเจคเตอร์
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่