الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارحو المساعدة كود للبحث عن غرفة شاغرة بين تاريخين

بدأه khsnas في 13 يوليو 2011 · 8 رد · 1,029 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوانى الكرام

السلام عليكم ورحمة الله وبركاته

كتبت موضوع قبل ذلك بنفس الطلب لكن لم يفدنى احد

اقوم بعمل موقع فندق واريد ان اعرف كيف يكون كود يقوم بالبحث فى قاعدة بيانات فندق عن غرفة فارغة بين تاريخين Check In و Check out كما فى مواقع الفنادق

واين يكتب هذا الكود

وهذه هى قاعدة البيانات وتاريخ Check in و check out هو فى جدول Room وهما العمودين InDate و OuDate

post-239611-089311700 1310515422_thumb.j

المرفقات
DB2.JPG

تم تعديل هذه المشاركة بواسطة khsnas في 13 يوليو 2011 في 03:08

#2

السلام عليكم ورحمه الله وبركاته

اخي الموضوع مكرر, ارجوا الاكمال في الموضوع الاصلي!!

.:: Wish to become better and better ::.

#3

هلأ المشكلة إنك حاطط بيانات الحجز inDate , outDate في جدولين room و booking

يعني أساس تصميم قاعدة البيانات فيه شوية أخطاء .. وإنت رح تواجه صعوبات بكل الاستعلامات.. مو بس بهاد

أنا برأيي إذا لساتك بأول المشروع .. حاول تحسن تصميم قاعدة البيانات

اقتراحي للتصميم

post-246990-065022200 1310555397_thumb.p

بيكون الاستعلام (حسب تصميمي) عن الغرف غير المحجوزة في فندق محدد بين تاريخين محددين على الشكل التالي

select * from Rooms 
        where  (room_id in (select room_id from Booking where in_date=@checkin and out_date=@checkout) )
        and    (hotel_id = (select hotel_id from Hotels where hotel_name=@hotel_name) )

أما في حال حبيت تحافظ على تصميمك .. فيك تكتب الاستعلام على الشكل التالي

        select * from room where in_date=@checkin and out_date=@checkout

ملاحظة : لا داعي لحقل status لأنك تستطيع تحديد إذا الغرفة محجوزة أو لا من خلال اختبار وجود رقمها في جدول booking في تاريخ محدد

المرفقات
1.png

تم تعديل هذه المشاركة بواسطة khuloud في 13 يوليو 2011 في 14:15

#4

Khuloud شكرا جزيلا

بالنسبة للتعديل الذى اشرت به فقد قمت به ولكن لم يفلح

اما بالنسبة للاستعلام الذى نصحتينى به اذا كنت اريد ان احافظ على تصميمى وهو

select * from room where in_date=@checkin and out_date=@checkout

فانا جربته سلفا لكن المشكلة انه لا يعطى النتيجة المطلوبة فهو يقوم باظهار الغرف التى تحدد بداية التاريخ ونهايته فقط ولا يظهر ما بينهما اى انه يطهر غرفتين المعرفتين بتاريخ InDate و OutDate

ارجو ان اكون قد اوصلت الفكرة بالشكل الصحيح

#5
khsnas كتب:

select * from room where in_date=@checkin and out_date=@checkout

يمكن تعديل هذا الاستعلام ليصبح

select * from room where in_date>=@checkin and out_date<=@checkout

لحتى يصير ياخد كل المجال بين التاريخين

بس برجع بقلك ... فيه خطأ بتصميم قاعدة البيانات ... حاول ترجع ترتب الحقول أكتر

#6
khuloud كتب:

يمكن تعديل هذا الاستعلام ليصبح

select * from room where in_date>=@checkin and out_date<=@checkout

لحتى يصير ياخد كل المجال بين التاريخين

بس برجع بقلك ... فيه خطأ بتصميم قاعدة البيانات ... حاول ترجع ترتب الحقول أكتر

اولا شكرا جزيلا

ثانيا اعرف ان هناك خطأ فى قاعدة البيانات فانا اول مرة اصمم قاعدة بيانات واحاول الان التعديل فيها استنادا على تعديلاتك السابقة

لكن وجدت امر غريب ومحير كيف ابحث عن غرفة شاغرة بتاريخ بدء وانتهاء واصلا الغرف التى تكون شاغرة حاليا لا يكون لها تاريخ بداية و انتهاء حجز؟!!! :wacko: :wacko: :wacko: :wacko: :wacko: :wacko:

وصلت الفكرة ام لا

ارجو اعطاء تصور لكيفية البحث كى تاتى بالنتيجة المطلوبة.... وارجو المعذرة اعلم انى اتعبتك معى فخبرتى بقواعد البيانات بسيطة

#7
khsnas كتب:

كيف ابحث عن غرفة شاغرة بتاريخ بدء وانتهاء واصلا الغرف التى تكون شاغرة حاليا لا يكون لها تاريخ بداية و انتهاء حجز؟!!!

كلامك صحيح ... البحث عن غرف شاغرة هو البحث عن غرف غير محجوزة .. يعني not in

آسفة ... فاتتني في الجواب الماضي

select * from Rooms  
        where  (room_id not  in (select room_id from Booking where in_date>=@checkin and out_date<=@checkout) ) 
        and    (hotel_id = (select hotel_id from Hotels where hotel_name=@hotel_name) )

فيه فكرة تانية ... إذا كان المشروع خاص بفندق واحد .. ما في داعي لجدول الفنادق

تم تعديل هذه المشاركة بواسطة khuloud في 17 يوليو 2011 في 08:50

#8

السلام عليكم ورحمه الله وبركاته

اخي ارجو منك مواصلة الموضوع في قسم الـ SQL Server لأن موضوعك مكرر!!

.:: Wish to become better and better ::.

#9
khuloud كتب:

كلامك صحيح ... البحث عن غرف شاغرة هو البحث عن غرف غير محجوزة .. يعني not in

آسفة ... فاتتني في الجواب الماضي

select * from Rooms  
        where  (room_id not  in (select room_id from Booking where in_date>=@checkin and out_date<=@checkout) ) 
        and    (hotel_id = (select hotel_id from Hotels where hotel_name=@hotel_name) )

فيه فكرة تانية ... إذا كان المشروع خاص بفندق واحد .. ما في داعي لجدول الفنادق

اشكرك شكرا جزيلا ..... جزاك الله خير اكثيرا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…