النتائج 1 إلى 9 من 9

الموضوع: استفسار من خبراء الــ Mysql

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    294

    استفسار من خبراء الــ Mysql



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

    اخواني الكرام انا اعمل حاليا في نظام حجز غرف في فندق

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

    لدي جدولين

    واحد اسمه booking
    والثاني اسمه room

    طبعا داخل الــ booking في حقل اسمه room_id ويعتبر فورين كي

    اريد ان اعمل التالي

    عندما يأتي زبون ويريد ان يحجز غرفه

    يدخل تاريخ بدايه الحجز وتاريخ انتهائه

    ومن خلال هذه التواريخ اريد اظهار الغرف التي هي فارغة في هذا التاريخ

    اعتقد اني راح استخدم NOT BETWEEN

    لكن ما عرفت استخدمها بشكل سليم ، لاني راح اعمل join بين الجدولين واظهر جميع الغرف ما عدا الغرف التي هي محجوزة في هذا التاريخ (او ما عدا الغرف التي يقع تاريخ بدايه الحجز التي ادخلها الزبون بين تاريخ بدايه الحجز و تاريخ نهايه الحجز التي في قاعده البيانات في جدول ال booking

    قد اكون لم اوصل الفكره بشكل واضح

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

    هذه صورة لجدول الغرف room


    وهذه صورة لجدول الحجز booking






    __________________
    سبحان الله وبحمده ، سبحان الله العظيم


  2. #2
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    294


    جربت هذا الاستعلام لكن لم ينفع
    كود:
    select * from room,booking
    where booking.start_date NOT BETWEEN '2008-08-22' AND '2008-08-25'
    قد يكون المطلوب شبيه به





    __________________
    سبحان الله وبحمده ، سبحان الله العظيم

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    47


    لدى فكرة افضل ، تقوم باضافة حقل جديد وليكن room_status فى جدول الغرف يحتوى على قيمتين اما 0 " غير محجوز " او 1 " محجوز " واستخدم الامر التالى لأظهار الغرف الغير محجوزة
    كود PHP:
    SELECT FROM `roomWHERE `room_status`=







  4. #4
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    294


    اخي الكريم هذه الطريقه لا تنفع لان الغرفه ممكن ان تحجز اكثر من مره في ايام مختلفه

    يعني احمد يحجزها الاحد ومحمد يحجزها الاثنين وسالم يحجزها الثلاثاء وهكذا

    انا فكرت بطريقه جديده لكن محتاج احد يساعدني فيها شوي

    كود PHP:
             $query="SELECT * From booking 
             WHERE start_date BETWEEN 
    $date1 AND $date2";
             
    $result mysql_query($query)
             or die (
    "Error in query: $query. " mysql_error());
             if(
    $row=mysql_fetch_array($result))
             {
                 
    $query2="SELECT * FROM room WHERE room_id <> $row->room_id";
                 
    $result2 mysql_query($query2)
                 or die (
    "Error in query: $query2. " mysql_error());
             }
             
             while(
    $row2=mysql_fetch_object($result2))
             {
                 echo 
    $row2->room_id;
                 echo 
    $row2->room_price;
                 echo 
    "<br>";
                 echo 
    "<br>";
             
             } 
    الفكره هي ان استعلم في المره الاولى في جدول الحجوزات عن الغرف التي تم حجزها بين التاريخين الذي ادخلهما الزبون

    بعد ذلك استعلم استعلام اخر من جدول الغرف واستثني منها الغرف التي ظهرت لي في الاستعلام السابق

    ولكن السؤال كيف اتثني لو كانت النتيجه السابقة مكونه من اكثر من غرفه وموضوعه في مصفوفة

    ارجو التوضيح بارك الله فيكم





    __________________
    سبحان الله وبحمده ، سبحان الله العظيم

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    47


    طيب جرب نفذ الفكرة اللى قولتلك عليها وفى كل مرة يتم الحجز يتم تحديث قيمة الحقل بالرقم 1 وفى نهاية الحجز يتم تحديث قيمة الحقل بـ 0






  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    294


    اخي الكريم هذه الطريقه لا تنفع لاننا في نفس اليوم ممكن نحجز اكثر من حجز يعني ممكن ان نحجز لايام عديده

    لذلك لا يكفي حقل واحد لتحديد حالة الغرفة

    بارك الله فيك





    __________________
    سبحان الله وبحمده ، سبحان الله العظيم

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    444


    طيب انت ممكن انك تسوي فنكشن وتقوله ياخذ التاريخين وياخذ المدة بينهم مثلا كان التاريخ الحجز 12 وتاريخ الشيك اوت 15 تخليه ياخذ 12 و 13 و14 و 15
    وتقوله دورلي على الغرف اللي مو محجوزة بهذة التواريخ عن طريق استخدام A NOT IN

    A NOT IN (value, value2, ...)

    او تعطيه التاريخين وتسوي عملية استعلام ما ما هو خارج التاريخين .. راح تقولي كيف ؟ راح اقولك كالتالي
    where start date
    A NOT BETWEEN firstdate AND second date
    and
    end date
    A NOT BETWEEN firstdate AND second date






  8. #8
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    294


    بارك الله فيك اخوي sms

    طريقتك منطقيه

    وانا قبل شوي حليتها ولله الحمد

    ولكن بطريقه ثانيه

    الطريقة هي

    كود PHP:
    $query="SELECT * From booking  
             WHERE start_date BETWEEN '
    $date1' AND '$date2'"
             
    $result mysql_query($query
             or die (
    "Error in query: $query. " mysql_error()); 
             if(
    mysql_num_rows($result)>0)
             {
                
                
    $query2="";
                
    $co=0;
                while(
    $row mysql_fetch_object($result))
                 {
                     if(
    $co==0)
                     
    $query2="SELECT * FROM room WHERE room_id<>$row->room_id ";
                     else
                     
    $query2.="AND room_id<>$row->room_id ";
                     
                     
    $co=$co+2;
                 }
                 
                 
    $result2 mysql_query($query2
                 or die (
    "Error in query: $query2. " mysql_error());
                 if(
    mysql_num_rows($result2)>0)
                 {
                     while(
    $row2 mysql_fetch_object($result2))
                     {
                         echo 
    "room id is : " $row2->room_id;
                         echo 
    "<br>"
                         echo 
    "room price is : " $row2->room_price
                         echo 
    "<br>"
                         echo 
    "<br>"
                     
                     }
                     
                 
                 }
              
                         
             } 
    الحمدلله رب العالمين

    بكرة مناقشتي لمشروع التخرج

    لا تنسونا من دعواتكم اخواني





    __________________
    سبحان الله وبحمده ، سبحان الله العظيم

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2002
    المشاركات
    444


    الله يوفقك :app:










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض