نمایش نتایج 1 تا 3 از 3

نام تاپیک: چگونه آرشیو ماهانه درست کنم ؟

  1. #1
    کاربر دائمی آواتار 3nitro
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    380

    چگونه آرشیو ماهانه درست کنم ؟

    فرض کنید من یک سیستم وبلاگ نویسی دارم . حالا میخوام یک لیست از ماه / سال کنار وبلاگم باشه که اگه کاربر روی اون کلیک کرد مطالب مربوط به اون ماه / سال رو بیاره . البته طوری باشه که فقط از اولین پست شروع بشه تا آخرین پست . اگه هم در ماهی مطلبی نیست اون ماه رو اصلا نشون نده . اینجوری مثلا :
    فروردین 84
    اردیبهشت 84
    مرداد 84

  2. #2
    فکر کنم سخت ترین بخش کار (!) نمایش ماه های موجود در بانک هست (بخش نمایش اطلاعات رو فکر نکنم مشکلی داشته باشید).
    چند راه به ذهنم رسید که راحت ترین راهش این بود:
    موقع اضافه کردن مطالب (مثلا پست در وبلاگ) در یک فیلد مجزا ماه و سال جاری را اضافه کنید. مقدار وارد شده در بانک باید به این شکل باشد :
    yyyy/mm

    به این ترتیب می تونید با استفاده از کد زیر چیزی که نیاز دارید رو بدست بیارید:

    <%filepath = server.MapPath("database.mdb")
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath
    Set rs = conn.Execute("Select DISTINCT fldmonthandyear from tblweblog")
    On Error GoTo 0
    rs.MoveFirst
    do while Not rs.eof
    x = MonthName(mid(rs("fldmonthandyear"&#41 ;,6,2)) & " " & left(rs("fldmonthandyear"),4)
    response.write(x & "<BR>")
    rs.movenext
    loop
    %>

    که در اینجا مقادیر ذکر شده در جدول tblweblog و در فیلد fldmonthandyear ذخیره شده اند.

    استفاده از این روش نسبت به راه های دیگه ای که به ذهنم رسید این هست که امکان انجام چنین کاری در تاریخ های هجری شمسی رو در اختیار شما میگذارد. تنها کافیست به هنگام ذخیره اطلاعات شماره سال و ماه در تاریخ شمسی را وارد کنید و یه تغییر کوچک در کد بالا بدید (ماه های سال شمسی را تعریف کنید و با یک عبارت شرطی به جای نمایش شماره ماه نام آن را نمایش دهید).


    البته احتملا راه دیگه ای هم باشه ولی از من فقط همین بر میومد. اگه دوستان چیز دیگه ای می دونند دریغ نکنند.

    روز خوش

  3. #3
    کاربر دائمی آواتار 3nitro
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    380
    خیلی ممنون . این هم یک روشی است . :flower:

    تکمیل : (6 خرداد)

    یافتم . البته باید اقرار کنم ایده اینکه یک فیلد دیگه داشته باشیم از آقای غیبی بود .
    این روشی که دیشب یه دفعه موقع خواب به ذهنم خطور کرد :

    تاریخی که ارسال میشه قسمت ماه و سالش با Mid مثلا جدا بشه بعد با قسمت ماه و سال دیگر پست ها سنجیده بشه . اگر همچین تاریخی بود یعنی توی اون ماه قبلا یک پست داشتیم و در فیلد جدیدی که واسه آخرین پست می زنیم مقدار false قرار می گیره . اگه هم تاریخی مثل اون پیدا نشد یعنی اولین پست ما در این ماه هست و مقدار فیلد جدید اون پست true میشه . بعد در آخر هم لیست تمام فیلدهایی که true هستند رو میگیریم . اگر هم در یک ماهی مطلبی ارسال نکنیم اصلا مشکلی ایجاد نمیشه .

    فکر کنم حله ( ! ) البته بگمونم . باز هم ممنون از جناب آقای غیبی

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •