PDA

View Full Version : ایجاد زمان برای آگهی



mamadco
دوشنبه 25 خرداد 1394, 10:38 صبح
سلام دوستان یه سیستم آگهی ساده دارم مینویسیم ، که آگهی رایگان و پولی داره ، که توی یه جدول بخصوصی یه ستون هست که آگه صفر بگیره رایگان اگه 1 بگیره پولی .
میخوام شرط بزارم که اگه آگهی پولی بود به این صورت نمایش بده
که تا اینجا شو خودم رفتم میخوام کاری کنم که بعد از مدت معین مثلا 30 روز اون ستون بشه 0 و آگهی به صورت رایگان شه
چطوری؟

H:Shojaei
دوشنبه 25 خرداد 1394, 10:48 صبح
یه ستون تاریخ هم باید بذارید و با کرون جاب هر روز یک بار چک کنید که کدوم آگهی ها 1 ماه گذشته از تاریخشون بعد مقادیرشونو 0 کنید...

mamadco
دوشنبه 25 خرداد 1394, 11:24 صبح
کرون جاب ؟ کار نکردم باهاش یه مثالی چیزی اگه میشه بزنید مرسی

mamadco
دوشنبه 25 خرداد 1394, 12:00 عصر
الان رفتم درباره این کرون جاب تحقیق کردم
الان فرضا من یه ستون تاریخ ایجاد کردم
وقتی کاربر پرداخت رو انجام داد با چه تابعی تاریخ رو ثبت کنم که مشکلی پیش نیاد
وقتی کروب حان اومد هر روز اون فایل رو چک کردن باید چه شرطی بزارم که اگه یه ماه گذاشت ، اون کار رو انجام بده
یه توضیح بدین اگه ممکنه مرسی

H:Shojaei
دوشنبه 25 خرداد 1394, 12:30 عصر
timestamp رو تو اون ستون ذخیره کنید... بعد وقتی میخواید چک کنید که چند روز گذشته timestamp فعلی رو از اونی که تو دیتابیس هست کم کنید و داخل این تابع قرارش بدین:

$days=floor($datediff/(60*60*24));
که تعداد روز رو بهتون میده... حالا تعداد روز گذشته از اون روز رو دارین شرط رو هم که میگین اگه بیشتر از 30 بود 0 بشه اگر نه که هیچی...
-------
راستی timestamp رو هم با تابع time() میتونید بگیرید...

mamadco
دوشنبه 25 خرداد 1394, 13:37 عصر
timestamp رو تو اون ستون ذخیره کنید... بعد وقتی میخواید چک کنید که چند روز گذشته timestamp فعلی رو از اونی که تو دیتابیس هست کم کنید و داخل این تابع قرارش بدین:

$days=floor($datediff/(60*60*24));
که تعداد روز رو بهتون میده... حالا تعداد روز گذشته از اون روز رو دارین شرط رو هم که میگین اگه بیشتر از 30 بود 0 بشه اگر نه که هیچی...
-------
راستی timestamp رو هم با تابع time() میتونید بگیرید...

دمت گرم مهندس کامل گرفتم چی شد مرسی

Mohammadsgh
دوشنبه 25 خرداد 1394, 22:31 عصر
کران جابز نیاز نیست.به صورت عادی هم میتونید این کار رو انجام بدید.کران جابز برای زمانیه که شما راه دیگه ای نداشته باشید

H:Shojaei
دوشنبه 25 خرداد 1394, 22:42 عصر
بله دوستمون درست میگن...
میتونید زمانی هم که اون تبلیغات دیده میشه هم این کارو بکنید و اولین باری که تبلیغات دیده شد و 30 روز هم گذشته بود اونو مقدارشو 0 کنیم...
ولی دیگه اینجا اگر بخواید عمل دیگه ای انجام بدین بعد این که 30 روز گذشت امکانش نیست مثلا میخواید به محض این که 30 روز گذشت به کسی که تبلیغات رو گذاشته یه ایمیل هم بزنید با این روش امکانش نیست و باید از کرون جاب استفاده کنید...
ولی اگر صرفا فقط میخواید اون مقداره 0 بشه همین که وقتی تبلیغات دیده میشه چک کنید و مقدارشو اگر از 30 روز گذشته بود تغییر بدین کفایت میکنه و کرون جاب هم نمیخواد...

mamadco
پنج شنبه 28 خرداد 1394, 06:13 صبح
ببینید حقیقتا من واسه سایت آگهی میخوام فقط تو همینجا مشکل پیدا کردم ،
ما 4 تا مدل آگهی داریم ، رایگان ، ماهانه ، سه ماهه ، شش ماهه
و برای آگهی های ویژ مثلا برچسب فوری یا ستاره گذاشتیم
میخوام وقتی از زمانشون رد شد ، به صورت آگهی رایگان بشه ( صفر رو اینسرت کنه)
بهترین و متداول ترین راهشو میخوام که اصولی باشه ، من الان گیج شدم
H:Shojaei (http://barnamenevis.org/member.php?241637-H-Shojaei) like :D

H:Shojaei
پنج شنبه 28 خرداد 1394, 15:01 عصر
ببینید اگر میخواید بعد از این که دقیقا زمان آگهی گذشت علاوه بر این که مقدارشو 0 کنید مثلا یک ایمیل هم به ارسال کننده آگهی بزنید یا پیامک ارسال کنید یا هر کار دیگه ای که دقیقا زمانی که آگهی 1 روز از انقضاش گذشته باشه قرار باشه انجام بشه باید از کرون جاب استفاده کنید و زمانش رو 1 روز بذارید...
ولی اگر مسئله فقط اینه که شما بیاید یک نفر که آگهی رو خواست ببینه اگر تاریخش گذشته بود اون مقداره رو 0 کنه و نمایش نده آگهی رو تو همون کدهایی که آگهی رو نمایش میدین همونجا این مسئله تاریخ رو هم میتونید چک کنید ...
بستگی به کاهایی داره که بعد از گذشتن تاریخ آگهی میخواید انجام بدین...

godofphp
پنج شنبه 28 خرداد 1394, 15:28 عصر
خیلی راحت ! یک کلاس ساده بنویس که بیاد کارهاتو انجام بده . مثلا متدی توش باشه که مقدار 0 رو 1 بکنه بعد بیا توی تایم خاص اون رو توسط cron job اجرا کن

mamadco
جمعه 29 خرداد 1394, 07:14 صبح
تا اونجایی که فهمیدم باید یه تایم وارد ردیف آگهی ها کنم ، و کرون جاب رو تنظیم کنم که هر روز بیان فلان فایل رو بخونه
بعد دستورات به اینصورت باشه که اگر رایگان بود که هیچی کاری ندارم ، اگر پولی بود و از اون مقدار تعیین شده بزرگتر شده بود یعنی از زمانش گذشته بود ، بیا و عدد 0 رو مثلا اینسرت کن درسته ؟

H:Shojaei
شنبه 30 خرداد 1394, 02:23 صبح
آره...
ولی باز هم میگم اگر به جز اون عددشو تغییر بدین کار دیگه ای نیاز نیست بکنید حتما لازم نیست cron job باشه... میتونید وقتی اون آگهی دیده میشه توسط هر کاربری هم این کارو انجام بدین...

m.esmaeilzadeh
یک شنبه 31 خرداد 1394, 12:28 عصر
من قبلا تجربه اش رو داشتم , با توابع date خود php تاریخ انقضاء رو بر حسب ثانیه یا میکرو بدست بیار و تو کرون میتونی با عملگرهای < > کوئری بزنی و عمل انقضاء و غیر فعال کردن رو اجرا کنی !

reza_alie
یک شنبه 31 خرداد 1394, 16:16 عصر
من قبلا تجربه اش رو داشتم , با توابع date خود php تاریخ انقضاء رو بر حسب ثانیه یا میکرو بدست بیار و تو کرون میتونی با عملگرهای < > کوئری بزنی و عمل انقضاء و غیر فعال کردن رو اجرا کنی !

به نظر من که مشکل پیش میاد این روشی که شما گفتین به فرض مثال اگر در مدت 1ماه هیچ کاربری از آگهی مورد نظر بازدید نکرد اونوقت تکلیف چی میشه؟؟