parniaznet
جمعه 21 فروردین 1394, 22:12 عصر
سلام
وقت بخیر
من نیاز دارم یه سیستم ستاره دهی با ماکزیمم 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");
و با دستور بالا همه چیز رو از دیتابیس انتخاب می کنم .
مشکلی که هست در محاسبه میانگین جدید هست که همیشه اشتباه حساب می کنه و البته فقط در مرتبه اول هست که میانگین امتیازات تغییر میکنه و در بقیه موارد میانگین تغییری نمیکنه فقط به تعداد نفرات یکی اضافه میشه
مشکل کد های من کجاست؟
وقت بخیر
من نیاز دارم یه سیستم ستاره دهی با ماکزیمم 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");
و با دستور بالا همه چیز رو از دیتابیس انتخاب می کنم .
مشکلی که هست در محاسبه میانگین جدید هست که همیشه اشتباه حساب می کنه و البته فقط در مرتبه اول هست که میانگین امتیازات تغییر میکنه و در بقیه موارد میانگین تغییری نمیکنه فقط به تعداد نفرات یکی اضافه میشه
مشکل کد های من کجاست؟