واضح آرشیو وب فارسی:سایت ریسک: تریگر کردن تابع در MySQL praise 06 آذر 1387, 18:11سلام من یه سایت دارم که می خوام افرادی که تا 3 روز عضویت خودشون رو فعال نکرده اند به طور خود کار پاک شوند. یه جدول به اسم users دارم که یه ستون به اسم reg_date داره که روز عضویت رو نشون می ده: سوال 1 - جطور می شه با کد SQL تفاوت دو تاریخ رو فهمید؟ سوال 2 - چطور میشه یه کد SQL نوشت که در موقعی که دو تاریخ از هم 72 ساعت (3 روز) اختلاف زمانی دارند؛ به طور خودکار QUERY زیر را تریگر کند؟ delete from users where id=1 limit 1 ممنون که به سوال من جواب میدید!!!!!!! ziXet 06 آذر 1387, 18:54سلام من یه سایت دارم که می خوام افرادی که تا 3 روز عضویت خودشون رو فعال نکرده اند به طور خود کار پاک شوند. یه جدول به اسم users دارم که یه ستون به اسم reg_date داره که روز عضویت رو نشون می ده: سوال 1 - جطور می شه با کد SQL تفاوت دو تاریخ رو فهمید؟ سوال 2 - چطور میشه یه کد SQL نوشت که در موقعی که دو تاریخ از هم 72 ساعت (3 روز) اختلاف زمانی دارند؛ به طور خودکار QUERY زیر را تریگر کند؟ delete from users where id=1 limit 1 ممنون که به سوال من جواب میدید!!!!!!! خوب تو باید reg_date رو بر اساس تابع ()time تعریف کنی بعدش یه کوئری مینویسی به این صورت: DEL --- WHERE reg_date < ()time - 3600*24*3 البته راهای دیگه ای هم هست ولی این خیلی راحته فقط یادت باشه که تو reg_date تاریخ ها رو بر اساس ()time بذاری یعنی فقط ثانیه praise 07 آذر 1387, 16:29اولاً ممنونم که به من جواب دادی ولی این جواب سوال من نبود بلکه یه کلک خوب برای حل سریع مسئله بود. من خواستم که یک QUERY بنویسید که اختلاف دو تاریخ رو به روز و ساعت بده مثلاً: Select DATE_DIFF(DATE1, DATE2) البته توابعی مثل SUBDATE و ... هست که من نتونستم ازش خوب استفاده کنم. اگه پای کامپیوتر خودم بودم می تونستم تمام QUERY هایی که جواب ندادن رو برات بفرستم. این از سوال اولم. سوال دومم این بود که من نمی خوام وارد صفحه ای که تابع پاک کردن رو به زبان PHP نوشتم؛ بشم بعد عملیات پاک کردن انجام بشه، بلکه این تابع در SERVER و یا MYSQL تعریف بشه تا بصورت خودکار که اختلاف دو تاریخ به 72 ساعت رسید، این ردیف از جدول پاک بشه. (البته میشه یه تابع به زبان PHP در صفحه اول سایت گذاشت - کلک:D) باز هم به خاطر جوابتون تشکر می کنم:oops: yakoza 07 آذر 1387, 17:07اون چیزی که شما می خوایی با cron Job و او کوئری که Shahkey.com داد حل میشه موفق باشید ziXet 07 آذر 1387, 21:35اولاً ممنونم که به من جواب دادی ولی این جواب سوال من نبود بلکه یه کلک خوب برای حل سریع مسئله بود. من خواستم که یک QUERY بنویسید که اختلاف دو تاریخ رو به روز و ساعت بده مثلاً: Select DATE_DIFF(DATE1, DATE2) البته توابعی مثل SUBDATE و ... هست که من نتونستم ازش خوب استفاده کنم. اگه پای کامپیوتر خودم بودم می تونستم تمام QUERY هایی که جواب ندادن رو برات بفرستم. این از سوال اولم. سوال دومم این بود که من نمی خوام وارد صفحه ای که تابع پاک کردن رو به زبان PHP نوشتم؛ بشم بعد عملیات پاک کردن انجام بشه، بلکه این تابع در SERVER و یا MYSQL تعریف بشه تا بصورت خودکار که اختلاف دو تاریخ به 72 ساعت رسید، این ردیف از جدول پاک بشه. (البته میشه یه تابع به زبان PHP در صفحه اول سایت گذاشت - کلک:D) باز هم به خاطر جوابتون تشکر می کنم:oops: خود مای اسکیول این امکان رو ندراه! شما یا باید از کرون جاب استفاده کنی که با اون یه کد php رو در زمان های مختلف اجرا میکنی و اون کد php اقدام به پاک کردن میکنه یا اینکه کد رو بذاری توصفحه اول که ملت رفرش کنن. کلا اگه خیلی لازم نیست کرون جاب پیشنهاد نمیشه چون درد سرهای خاص خودشو داره موفق باشید ziXet 07 آذر 1387, 21:40سوال اولت رو یادم رفت جواب بدم. جواب: برای اینکه بتونی اختلاف دو ستاریه رو که مثلا به صورت Y-m-d هست رو بر حسب ثانیه یا هر چیز دیگه در بیاری استفاده از تابع mktime پیشنهاد میشه. php.net/mktime این تبع سال رو ماه و روز و.. رو میگیره و برحسب ثانیه های گذاشته از تولد php نشون میده. موفق باشید praise 08 آذر 1387, 18:21ممنون از همتون! msnasiri 12 آذر 1387, 10:59می بخشید پریدم وسط ولی عنوان تاپیک انگار چیزی دیگه هست. من یه سایت دارم که می خوام افرادی که تا 3 روز عضویت خودشون رو فعال نکرده اند به طور خود کار پاک شوند. ممنون می شم جواب بدید ziXet 12 آذر 1387, 11:32می بخشید پریدم وسط ولی عنوان تاپیک انگار چیزی دیگه هست. ممنون می شم جواب بدید پست 2 رو نگاه کن msnasiri 12 آذر 1387, 12:07del --- where reg_date < ()time - 3600*24*3 الان دیدم ولی این یعنی کی و کجا اجرا بشه؟ ziXet 12 آذر 1387, 13:01الان دیدم ولی این یعنی کی و کجا اجرا بشه؟ گفتم ! اینو باید بجایی بذاری که همش رفرش شه! مثلا میتونی تو صفحه اول سایت بذاری یا اینکه تو یه فایل جدا بذاری و با کرون جاب اجراش کنی
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 467]