/
  • الگوریتم پربازدید ترین مطالب 24 ساعت گذشته

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    نویسنده پیام
    esmahdi آفلاین
    عضو
    ***

    ارسال‌ها: 116
    تاریخ عضویت: ۱۳۹۰ مهر ۱۴
    اعتبار: 0
    تشکرها : 34
    ( 21 تشکر در 10 ارسال )
    ارسال: #1
    الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    سلام
    چطوری می تونم الگوریتمی بنویسم که پر بازدید ترین مطالب در 24 ساعت آخر نمایش داده بشه.
    سیستم مدیریت محتوای من اختصاصیه و ایده خاصی به ذهنم نمی رسه.
    ۱۳۹۴ شهريور ۳۰ ۰۸:۰۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,782
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #2
    RE: الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    همیشه بهتر موضوع رو ریز ریز کنی و به قسمت های کوچیکتر تقسیمش کنی تا بتونی حلش کنی...
    یه مثال میزنم تا متوجه اصل ماجرا بشی:
    اول لازم داری تا یک فیلد views از نوع int به جدول مطالبت اضافه کنی که کلیک هارو داخلش ذخیره کنی -> مقدار این فیلد views توسط کلیکی که روی ID اون مطلب میشه بالا میره.
    پس حالا می تونی پربازدیدترین مطالب رو نمایش بدی...

    حالا برای نمایش پربازدید ترین مطالب در هر تاریخ خاص:
    لازم داری تا یک فیلد last_view از نوع date/timestamp به جدول مطلبت اضافه کنی که زمان آخرین کلیک رو داخلش ذخیره کنی -> مقدار فیلد last_view توسط زمان آخرین کلیک آپدیت میشه.
    پس حالا می تونی پربازدیدترین مطالب در تاریخ خاص رو نمایش بدی...

    و برای نمایش پربازدید ترین مطالب در 24 ساعت گذشته:
    کد PHP:
    SELECT FROM `tbl_postsWHERE DATE(`last_view`) > DATE_SUB(CURDATE(), INTERVAL 24 HOURSORDER BY `viewslimit 5;
    یا
    SELECT 
    FROM `tbl_postsWHERE `last_view` > (NOW() - INTERVAL 24 HOURORDERBY `viewslimit 5;
    یا
    SELECT 
    FROM `tbl_postsWHERE `last_view` = '" . date('Y-m-d H:i:s', strtotime('-24 hours')) . "' ORDERBY `viewslimit 5;
    یا
    SELECT 
    FROM `tbl_postsWHERE `last_view` = '" . date('Y-m-d h:i:s', strtotime("-1 day")) . "' ORDERBY `viewslimit 5;
    یا
    SELECT 
    FROM `tbl_postsWHERE DATE(`last_view`) = DATE(CAST(NOW() - INTERVAL 1 DAY AS DATE)) ORDERBY `viewslimit 5;
    یا
    SELECT 
    FROM `tbl_postsWHERE DATEDIFF(NOW(), `last_view`) <= 1 ORDERBY `viewslimit 5
    همشون یکی هستن، بسته به سبک کد نویسیت و نوع فیلد last_view...

    نکته: اگر فکر میکنی مطالبت view زیادی خواهند داشت، بجای نوع int از نوع bigint(20 استفاده کن.
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۳۱ ۱۲:۲۰ صبح، توسط Y.P.Y.)
    ۱۳۹۴ شهريور ۳۱ ۱۲:۱۲ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : undefined esmahdi shgninc
    esmahdi آفلاین
    عضو
    ***

    ارسال‌ها: 116
    تاریخ عضویت: ۱۳۹۰ مهر ۱۴
    اعتبار: 0
    تشکرها : 34
    ( 21 تشکر در 10 ارسال )
    ارسال: #3
    RE: الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    من فیلد numView رو تو جدول مطالب posts دارم و با هر کلیک روی مطلب یک عدد به این فیلد اضافه می شه.
    اما last_view فقط زمان آخرین کلیک رو نشون می ده و ربطی به "پر بازدیدترین مطالب 24 ساعت گذشته" نداره.
    با توجه به چیزی که من از مطلبتون فهمیدم، کاری که شما می گید آخرین پستایی رو نشون می ده که ظرف 24 ساعت گذشته کلیک شدن.
    شایدم من متوجه نشدم، لطفا یه طور دیگه توضیح بدید.
    ۱۳۹۴ شهريور ۳۱ ۰۱:۴۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,782
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #4
    RE: الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    نقل قول: اما last_view فقط زمان آخرین کلیک رو نشون می ده
    دقیقاً همینه.

    کوئری اول: پست هایی که در 24 ساعت گذشته روشون کلیک شده... که سادست، درسته؟

    کوئری دوم: پست هایی که بیشترین کلیک روشون شده... که اینم سادست، درسته؟

    در آخر، ترکیب کوئری اول و دوم. که میشه: پر کلیک ترین پست ها + در 24 ساعت گذشته.
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    ۱۳۹۴ شهريور ۳۱ ۰۳:۱۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : esmahdi
    esmahdi آفلاین
    عضو
    ***

    ارسال‌ها: 116
    تاریخ عضویت: ۱۳۹۰ مهر ۱۴
    اعتبار: 0
    تشکرها : 34
    ( 21 تشکر در 10 ارسال )
    ارسال: #5
    RE: الگوریتم پربازدید ترین مطالب 24 ساعت گذشته
    مثلا فرض کنید تو ماه فروردین هستیم. اول فروردین یک پست 2000 بار مشاهده شد، و دیگه اصلا مشاهده نشد تا روز 29 فروردین ساعت 11 شب یک بار مشاهده می شه.
    در عین حال در روز 29 فروردین پست های دیگه ده ها بار مشاهده شدن. یعنی اگر ما 29 فروردین ساعت 11 و 5 دقیقه شب بخواهیم پر بازدید ترین مطالب 24 ساعت گذشته رو ببینیم این پستی که اول ماه زدیم نشون داده می شه. در صورتی که این پست بیشترین بازدیدش رو اول ماه داشته و تو 24 ساعت گذشته فقط یک بار نشون داده شده ولی چون صرفا 5 دقیقه قبل از گرفتن خروجی یک بار دیده شده در نتایج خروجی ما ظاهر می شه.
    منظورتون رو اینجوری متوجه شدم! Undecided
    ۱۳۹۴ شهريور ۳۱ ۰۳:۵۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS