۱۳۹۶ آذر ۰۷, ۰۸:۲۱ ب.ظ
دوستان سلام
فرض کنید توی سایت ما کلیه کاربران به ازای هر فعالیتی که دارند امتیاز دریافت می کنند
مثلا به ازای هر پستی که ارسال می کنند 50 امتیاز دریافت می کنند
به ازای هر ارسال نظر 35 امتیاز دریافت می کنند
به ازای هر لایک 13 امتیاز دریافت می کنند
که این امتیاز در ستون rate از جدول users ذخیره میشه یعنی هر امتیازی که کاربر دریافت میکنه به این ستون افزوده میشه
حالا من میخوام وقتی مقدار معینی امتیاز که به این ستون افزوده شد، یک کد اجرا بشه
یعنی میخوام به ازای هر 200 امتیازی که کاربر دریافت کرد، کد مورد نظر من اجرا بشه
این کدیه که نوشتم:
ولی خب به دو دلیل کد خوبی نیست:
1-اول اینکه کد نویسی زیادی داره مثلا اگر خواسته باشم تا 10000 بنویسم خیلی کد میشه
2-دوم اینکه فرض کنید یک کاربر امتیازش 220 شد، اونوقت هر وقت وارد ناحیه کاربریش بشه، کوئری من اجرا میشه درحالیکه من میخوام به ازای هر 200 امتیاز یک بار اجرا بشه
ممنون میشم راهنمایی کنید.
فرض کنید توی سایت ما کلیه کاربران به ازای هر فعالیتی که دارند امتیاز دریافت می کنند
مثلا به ازای هر پستی که ارسال می کنند 50 امتیاز دریافت می کنند
به ازای هر ارسال نظر 35 امتیاز دریافت می کنند
به ازای هر لایک 13 امتیاز دریافت می کنند
که این امتیاز در ستون rate از جدول users ذخیره میشه یعنی هر امتیازی که کاربر دریافت میکنه به این ستون افزوده میشه
حالا من میخوام وقتی مقدار معینی امتیاز که به این ستون افزوده شد، یک کد اجرا بشه
یعنی میخوام به ازای هر 200 امتیازی که کاربر دریافت کرد، کد مورد نظر من اجرا بشه
این کدیه که نوشتم:
کد پیاچپی:
$rate=$db2->fetch_field('SELECT rate FROM users WHERE id="'.$id.'"');
if($rate > 200) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 400) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 600) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 700) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 800) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 1000) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 1200) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}elseif($rate > 1400) {
$db2->query('UPDATE users SET user_rating=user_rating+10 WHERE id="'.$id.'" LIMIT 1');
}
1-اول اینکه کد نویسی زیادی داره مثلا اگر خواسته باشم تا 10000 بنویسم خیلی کد میشه
2-دوم اینکه فرض کنید یک کاربر امتیازش 220 شد، اونوقت هر وقت وارد ناحیه کاربریش بشه، کوئری من اجرا میشه درحالیکه من میخوام به ازای هر 200 امتیاز یک بار اجرا بشه
ممنون میشم راهنمایی کنید.