• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پاک کردن اتوماتیک کئئری های بعد از ردیف 10 در دیتابیس
#1
سلام

فرض کنید یک جدول داریم که لاگ های ورود کاربران در اون ذخیره میشه با مقادیر ستون های زیر
id
ip
time
user_id
status

میخوام لاگ های ورود هرکاربر به 10 تا که رسید و میخواد یازدهمی ثبت بشه اولین لاگ ورود اون کاربر به صورت اتوماتیک پاک بشه
کدش به چه صورته ؟
  پاسخ
تشکر شده توسط :
#2
یکی از قوانین این انجمن اینه که کسی کد نباید بده!

راه‌حل میدن دوستان.
شما انجامش میدی
اگه نتونستی و هرجایی که گیر کردی، کدت رو اینجا میذاری و راهنمایی میخوای.
دوباره دوستان سعی میکنن کمک بکنن.
ولی کسی کد نمی‌نویسه برای کسی.
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۸ اردیبهشت ۰۵, ۰۳:۴۳ ق.ظ)molana نوشته: یکی از قوانین این انجمن اینه که کسی کد نباید بده!

راه‌حل میدن دوستان.
شما انجامش میدی
اگه نتونستی و هرجایی که گیر کردی، کدت رو اینجا میذاری و راهنمایی میخوای.
دوباره دوستان سعی میکنن کمک بکنن.
ولی کسی کد نمی‌نویسه برای کسی.

خب راهنمایی کنین
  پاسخ
تشکر شده توسط :
#4
(۱۳۹۸ اردیبهشت ۰۵, ۰۱:۵۵ ب.ظ)Master_Power نوشته:
(۱۳۹۸ اردیبهشت ۰۵, ۰۳:۴۳ ق.ظ)molana نوشته: یکی از قوانین این انجمن اینه که کسی کد نباید بده!

راه‌حل میدن دوستان.
شما انجامش میدی
اگه نتونستی و هرجایی که گیر کردی، کدت رو اینجا میذاری و راهنمایی میخوای.
دوباره دوستان سعی میکنن کمک بکنن.
ولی کسی کد نمی‌نویسه برای کسی.

خب راهنمایی کنین

خب اول اینکه باید چک کنی تعداد رکوردهای جدولت چندتاست اگه بیشتر از 10 شد بیای اونو به صورت کوچک به بزرگ مرتب کنی ( ORDER BY id ASC LIMIT 1)  و حذفشون کنی
حالا کدشو بزن  Smile Smile
کل جوابو گفتما
  پاسخ
تشکر شده توسط : Master_Power
#5
(۱۳۹۸ اردیبهشت ۰۶, ۰۳:۰۰ ق.ظ)kasbookar نوشته:
(۱۳۹۸ اردیبهشت ۰۵, ۰۱:۵۵ ب.ظ)Master_Power نوشته:
(۱۳۹۸ اردیبهشت ۰۵, ۰۳:۴۳ ق.ظ)molana نوشته: یکی از قوانین این انجمن اینه که کسی کد نباید بده!

راه‌حل میدن دوستان.
شما انجامش میدی
اگه نتونستی و هرجایی که گیر کردی، کدت رو اینجا میذاری و راهنمایی میخوای.
دوباره دوستان سعی میکنن کمک بکنن.
ولی کسی کد نمی‌نویسه برای کسی.

خب راهنمایی کنین

خب اول اینکه باید چک کنی تعداد رکوردهای جدولت چندتاست اگه بیشتر از 10 شد بیای اونو به صورت کوچک به بزرگ مرتب کنی ( ORDER BY id ASC LIMIT 1)  و حذفشون کنی
حالا کدشو بزن  Smile Smile
کل جوابو گفتما

سلام مجدد عزیز
من نوشتم کد را و درست هم حذف میکنه ولی یه مشکلی که دارم اینه که الان فقط ردیفی که تاریخ ورودش مثلا مال 30 روز پیش هست را پاک میکنه و من میخوام هرچی ردیف مربوط به 30 روز پیش و قبلتر هست پاک بشه.چطور کد را اصلاح کنیم ؟؟؟؟؟؟؟؟؟

کد پی‌اچ‌پی:
<?php if ($rows_q 10) {
 
   $threemonthAgo time() - (30 24 60 60);
 
   list($year$month$day) = explode("-"tr_num(jdate("Y-m-d"$threemonthAgo)));
 
   $date30 $year "/" $month "/" $day;
 
   while ($row_log2 mysqli_fetch_assoc($result)){
 
       if($row_log2['ldate']<=$date30){
 
           $del="DELETE FROM login_history_tbl WHERE user_id='$_SESSION[user_id]' AND ldate='$date30'";
 
           $delq=mysqli_query($conn,$del);
 
       }
 
   }

?>
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۸ اردیبهشت ۰۶, ۰۶:۲۸ ب.ظ)Master_Power نوشته:
(۱۳۹۸ اردیبهشت ۰۶, ۰۳:۰۰ ق.ظ)kasbookar نوشته:
(۱۳۹۸ اردیبهشت ۰۵, ۰۱:۵۵ ب.ظ)Master_Power نوشته:
(۱۳۹۸ اردیبهشت ۰۵, ۰۳:۴۳ ق.ظ)molana نوشته: یکی از قوانین این انجمن اینه که کسی کد نباید بده!

راه‌حل میدن دوستان.
شما انجامش میدی
اگه نتونستی و هرجایی که گیر کردی، کدت رو اینجا میذاری و راهنمایی میخوای.
دوباره دوستان سعی میکنن کمک بکنن.
ولی کسی کد نمی‌نویسه برای کسی.

خب راهنمایی کنین

خب اول اینکه باید چک کنی تعداد رکوردهای جدولت چندتاست اگه بیشتر از 10 شد بیای اونو به صورت کوچک به بزرگ مرتب کنی ( ORDER BY id ASC LIMIT 1)  و حذفشون کنی
حالا کدشو بزن  Smile Smile
کل جوابو گفتما

سلام مجدد عزیز
من نوشتم کد را و درست هم حذف میکنه ولی یه مشکلی که دارم اینه که الان فقط ردیفی که تاریخ ورودش مثلا مال 30 روز پیش هست را پاک میکنه و من میخوام هرچی ردیف مربوط به 30 روز پیش و قبلتر هست پاک بشه.چطور کد را اصلاح کنیم ؟؟؟؟؟؟؟؟؟

کد پی‌اچ‌پی:
<?php if ($rows_q 10) {
 
   $threemonthAgo time() - (30 24 60 60);
 
   list($year$month$day) = explode("-"tr_num(jdate("Y-m-d"$threemonthAgo)));
 
   $date30 $year "/" $month "/" $day;
 
   while ($row_log2 mysqli_fetch_assoc($result)){
 
       if($row_log2['ldate']<=$date30){
 
           $del="DELETE FROM login_history_tbl WHERE user_id='$_SESSION[user_id]' AND ldate='$date30'";
 
           $delq=mysqli_query($conn,$del);
 
       }
 
   }

?>
تاریخ امروز رو بدست بیار و با BETWEEN داخل کوئریت تاریخ هارو مشخص کن
example : 
https://stackoverflow.com/questions/1900...-two-dates
  پاسخ
تشکر شده توسط : Master_Power molana


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان