انجمن سایت کلیدستان



انجام محاسبات برای سیستم ستاره دهیزمان کنونی: ۱۳۹۵/۰۹/۱۹، ۱۲:۱۵ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: parniaznet
آخرین ارسال: admin
پاسخ 2
بازدید 615

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
انجام محاسبات برای سیستم ستاره دهی

انجام محاسبات برای سیستم ستاره دهی

#1
سلام
وقت بخیر
من نیاز دارم یه سیستم ستاره دهی با ماکزیمم 5 ستاره راه اندازی کنم. برای این منظور دو تا ستون ساختم برای هر مطلب. یکی تعداد ارا داده شده و یکی میانگین ستاره های داده شده.
امتیاز جدید گرفته شده از کاربر رو میفرستم به وب سرویس و اونجا کدهای زیر رو اجرا می کنم برای محاسبات :

$valuerate رای جدید داده شده توسط اخرین کاربر هست،

 $afzodan = mysql_query("UPDATE $table SET nrate = nrate +1 WHERE id = $id");

با دستور بالا میام به تعداد نفراتی که رای دادن یکی اضافه می کنم

    $nrate = mysql_query("SELECT nrate FROM $table WHERE id = $id");
با دستور بالا تعداد نفراتی که رای دادن رو میگیرم

    $rate = mysql_query("SELECT rate FROM $table WHERE id = $id");
با دستور بالا میانگین امتیازات رو میگیرم

    $newrate = (($nrate * $rate) + $valuerate ) / ($nrate);

با دستور بالا میانگین جدید رو با اعمال رای جدید محاسبه می کنم

    $afzodanrate = mysql_query("UPDATE $table SET rate = $newrate WHERE id = $id");

با دستور بالا میانگین جدید رو وارد دیتابیس می کنم
    $result = mysql_query("SELECT * FROM $table WHERE id = $id");

و با دستور بالا همه چیز رو از دیتابیس انتخاب می کنم .
مشکلی که هست در محاسبه میانگین جدید هست که همیشه اشتباه حساب می کنه و البته فقط در مرتبه اول هست که میانگین امتیازات تغییر میکنه و در بقیه موارد میانگین تغییری نمیکنه فقط به تعداد نفرات یکی اضافه میشه

مشکل کد های من کجاست؟

 
پاسخ

انجام محاسبات برای سیستم ستاره دهی

#2
سلام.
چون قبلا nrate را یک واحد افزایش داده اید، فرمول محاسبه به صورت زیر خواهد بود :

کد پی‌اچ‌پی:
$newrate = ((($nrate-1) * $rate) + $valuerate ) / ($nrate); 


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پرش به انجمن:


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

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)