PDA

View Full Version : نوشتن تریگر مبتنی بر زمان با استفاده از php برای پایگاه داده ی Sql server در wamp



bety ahmadpour
جمعه 04 مهر 1393, 19:50 عصر
خلق الله سلام
من یه مشکل دارم یه ذره یه جوری.
اونم اینکه می خوام سبد خریدی که برای یک سایت نوشتم زمان انقضا داشته باشه و داده هایی که فرد انتخاب کرده و توی دیتابیس رزرو شده پس از یک مدت مشخص که تایید نهایی نشد کلا بپره ، برای همین باید اون داده ها از توی دیتا بیس برداشته بشه و این یعنی اینکه تریگری می خوام که بستگی به زمان داشته باشه با گزینه ی create php موجود در پایگاه داده می شود این کار را کرد ؟؟؟؟ایا؟؟؟(من مشکلم اینه که تریگر رو بر اساس زمان در پایگاه داده sql server نمیشه نوشت )
تمنای عاجزانه تاکید دارم عاجزانه از حضار محترم دارم که خلق الله سریع جوابم را بدهیدplease

plague
جمعه 04 مهر 1393, 22:40 عصر
تریگر اینجوری کار نمیکنه شما میخای
اول اینکه سبد خرید رو تو دیتبیاس نمیریزن معمولا , توی سشن بریز به صورت آرایه که یه خونه آیدی محصول باشه یه خونه هم زمان خریدش
بعد میتونی چک کنی در هنگام نهایی خرید و اگه زمان بیش از چیزی که بود آرایه رو حذف کنی

اگه دیتبایس هم میخای استفاده کنی تنها راهش کرون جابه که بنویسی مرتب تیبل رو چک کنه و محصولات قدیمی رو حذف کنه

مای اسکیوال هم چیزی مشابه کرون جاب داره به اسم MySQL Event Scheduler که همون کار رو میکنه

bety ahmadpour
جمعه 04 مهر 1393, 23:10 عصر
سلام حاجی خیلی خیلی ممنون از اینکه جواب دادید
مساله اینه که من هم به چیزی مثل سشن فکر کردم ولی برای راحتی بیشتر کاربر از کوکی استفاده کردم ولی مساله این هم هست که من چون دارم پرتال ابر می نویسم باید همون لحظه ای که طرف سفارش می ده حتی با این که هنوز نخریده رزرو هم بشه براش و توی دیتا بیس براش در نظر بگیریم و به همین دلیل که نمی خوایم طرف منابع رو نگه نداره باید بپره بعد یه مدت همین واسه جوابی هم دادی ممنون باز هم فقط اگر ممکنه یکی به من بگه کرون جاب چطوری است و wamp هم این قابلیت رو داره یا نه

Unique
جمعه 04 مهر 1393, 23:30 عصر
به نظر من اصلا cron job نمیخواد و نیازی هم trigger نیست.
شما برای نمایش کالا ها یک select میگیری و وقتی هم کاربر توی سبد خرید چیزی میریزه باید تا یک زمانی اون مورد و تعدادش را از انبار کم کنه (یعنی تاریخ انقضا داریم). دو تا راه حل داره :

۱ - اولیش اینه که یک فیلد انقضا برای هر item توی سبد خرید یا کلا سبد خرید بگذرای و تعداد کالا توی select را از تعداد مواردی که انقضاشون هنوز فرا نرسیده کم کنی و اگه بیش از ۰ بود یعنی توی انبار هست و نمایش بدی. برای حذف سبد کالاهایی که به جایی نرسیده هم هر شب ساعت ۰ یک cron job میاد از جدول حذفشون میکنه تا جدول بیخودی پر نشه.

۲ - همون فیلد انقضا را میگذاری ولی قبل از select مواردی که به انقضا رسیدن را حذف میکنی (بدی این مورد اینه که تعداد حذف ها زیاد میشه و بار اضافی میگذاره روی دیتابیس و توصیه نمیکنم)

موفق باشی

plague
شنبه 05 مهر 1393, 00:49 صبح
۲ - همون فیلد انقضا را میگذاری ولی قبل از select مواردی که به انقضا رسیدن را حذف میکنی (بدی این مورد اینه که تعداد حذف ها زیاد میشه و بار اضافی میگذاره روی دیتابیس و توصیه نمیکنم)

موفق باشی

میتونه توی سلکت مواردی که تاریخ انقضاشون نرسیده رو فقط سلکت کنه اینجوری در هر سلکت نیازی نیت به دلیت قبلش
یه کرون جاب هم میزاره برای جارو کردن منقضی ها




باز هم فقط اگر ممکنه یکی به من بگه کرون جاب چطوری است و wamp هم این قابلیت رو داره یا نه
ومپ کرون جاب نداره .... رو سرور که رفتی تو سی پنل یا دایرکت ادمین گزینه کرون جاب رو میبینی
کرون جاب کارش اینه که سر ساعات خاص یه کد رو میشه بهش داد که اجرا کنه (نمثلا هر 1 دقیقه یا هر 12 ساعت یا ... ) کدی که میخای موارد قدیمی رو پاک کنه از دیتبایس مینویسی یجایی و میدی به کرون جاب که هی اجراش کنه در بازه های زمانی مشخص

Unique
شنبه 05 مهر 1393, 18:41 عصر
میتونه توی سلکت مواردی که تاریخ انقضاشون نرسیده رو فقط سلکت کنه اینجوری در هر سلکت نیازی نیت به دلیت قبلش
یه کرون جاب هم میزاره برای جارو کردن منقضی ها

روش اول من هم همین بود و شاید بد گفتم متوجه نشدین.