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

الموضوع: اخوان لو سمحتم مساعدة في استعلام غير متكرر :(

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    48

    اخوان لو سمحتم مساعدة في استعلام غير متكرر :(



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

    اخواني ليس لدي خبرة كثير في PHP و خصوصا MYSQL ...

    المهم انا عندي جدول ، وفيه حقل ابيه تاريخ اسمه dateadd اوكـ ...

    ابي التاريخ يكون على هيئة time() ، هل عند الادخال اقول كذا

    كود PHP:
    <?
    $qu 
    "insert into table set dateadd='".time()."' , name='me' ";
    ?>
    صح كذا ، مدري انا اشوف في mysql فيه curdate() و غيرها ... TIMESTAMP() .. فما ادري اي وحدة استخدم ... ؟؟!!

    ليه و ش الحاجة ؟ علشان ابي اسوي استعلام كذا

    كود PHP:
    <?
    YEAR
    (FROM_UNIXTIME(dateadd))='2007' 
    ?>
    ابي استعلام عن المواضيع للاشهر المخزنة بدون تكرار ... في سنة 2007 ... ( الحين الصورة وضحت )

    فبأي طريقة اضيف قيمة dateadd ، وكيف صيغة الاستعلام ...

    لانه حاليا يظهر متكرر مثلا كذا

    شهر 5 شهر 6 شهر 7 شهر 7 شهر 7 شهر 7 ... لماذا ؟ لان التاريخ صح نفسه بس الوقت ( الساعه ) مختلفة بالنسة لشهر 7 !!

    شهر 5 ما تكرر لانه موضوع واحد و تاريخ واحد و كذلك شهر 6 اما شهر 7 اربعة مواضيع كلها في نفس الشهر بس الوقت و اليوم مختلفة ... التاريخ كذا ( 1243453545 ) مثلا


    اتمنى المساعدة ولكم جزيل الشكر ..





    __________________
    { Swalif Soft }


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    افضل طريقة لصناعة الارشيف هي كما تفضلت انت بالذكر
    كود PHP:
    <? 
    $qu 
    "insert into table set dateadd='".time()."' , name='me' "
    ?>
    واصبح لديك مثلا سجلات من 2005 ل 2007

    احببت ان تقوم بادراج جميع السجلات لسنة 2005 تقوم بالتالي :
    كود PHP:
    <?php
    $last2005 
    mktime(000112006);
    // او يمكن استخدام 0 0 بدل 1 1 ولكن لم اجربها من قبل


    // مواضيع 2005
    mysql_query("select * from table where datedd < '$last2005' ");


    // مواضيع 2006
    $start2006 mktime(000112006);
    $end2006 mktime(000112007);

    mysql_query("select * from table where datedd > '$start2006' AND datedd < '$end2006' ");

    وهكذا ..

    لو اردت اظهار شهر معين ، تقوم بتغيير رقمه في فنكشن mktime

    لمراجعة الباراميترز لفنكشن mktime
    PHP: mktime - Manual


    تحياتي





    __________________
    SWF Thumbnail - tweet me

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    48


    الف شكر لك و جزاك الله خير

    راح اجرب و اشوف ..





    __________________
    { Swalif Soft }

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    48


    اخوي تقريبا نجحت بس بقي مشكلة و تقريبا محلولة .. وهي

    ان فائدة الـ DISTINCT في mysql جلب الاستعلام دون تقرير للقيمة المرره لها مثلا

    select DISTINCT(dateadd) from ...

    لكن الوقت مخزن بصيغة uinx .. فراح يكون مختلف حتى لو اضفت التواريخ في يوم واحد بس بوقت مختلف

    مثلا يوم 4 - 8 - 2008 .. اضفت الصباح تاريخ و العصر تاريخ و العشاء تاريخ راح تكون محتلفة مع انها في يوم واحد !!!


    هل يوجد حل ؟؟





    __________________
    { Swalif Soft }

  5. #5
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    ولماذا تريد استخدام distinct ؟

    تريد ان تظهر مواضيع يوم 4 - 8 - 2008


    1- هات قيمة ال unix stamp لبداية هذا اليوم من خلال mktime ولكن في المتغير X
    2- قم باضافة الحسبة التالية (24*60*60 ) للمتغير X وسميه مثلا Y
    3- استعلم عن المواضيع التي تنحصر ما بين X و Y وستحصل على كل المواضيع التي تمت اضافتها في 4 - 8 - 2008





    ملحوظة :
    لو كان الموقع كبير والمواضيع المؤرشفة كثيرة ( تتعدى مئات الالوف ) لربما من الحكمة ان تفكر في نظام آخر اكثر تعقيدا واكثر مرونة مثلا كاضافة حقل خاص للشهر وحقل خاص للسنة في الجدول .. لأنه اكيد
    هذا الكود ( الوضع الحالي ) :
    كود PHP:
    select from table where datedd '$X' AND datedd '$Y' 
    يختلف عن هذا ( فكرة الملحوظة ) :
    كود PHP:
    select from table where year '2008' AND month='8' AND day='4' 

    سيكون الاختلاف في ( وقت الاستعلام + سرعته ) كبير .. اذا كانت هناك مئات الالوف من السجلات .. (نظرا لأنه في الطريقة الاولى تتم معاينة السجلات من خلال الtime stamp والذي يكون تقريبا 14 - 15 رقم ولكن الطريقة الثانية ستكون معاينتها ومطابقتها اسرع بكثير .. نظرا لأنه لا يتدى الاربع خانات في اقصى حالاته )

    ولكن طبعا كل طريقة تحتاج لبناء هيكيلية معينة لبرمجيتك .. فحسبما ترى

    بالتوفيق





    __________________
    SWF Thumbnail - tweet me

  6. #6
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


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

    أخي Snake PHP ، جرب هذا الاستعلام واستخدم الحقل date من نتيجته :
    كود:
    select concat(day(from_unixtime(`time`)), "-", month(from_unixtime(`time`)), "-", year(from_unixtime(`time`))) as `date`  from `table` group by `date`
    إذا لم يكن هذا مرادك فإن شاء الله نصل إلى حل معاً ، أو ممكن يكون كلام الأستاذ أحمد هو طلبك ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    48


    الف شكر لكم جميعا ..

    سوف اجرب الاستعلامين و ارد لكم خبر

    ومعلومات جديدة وقيمة ...


    تحيتي





    __________________
    { Swalif Soft }





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

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

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