2011-02-19 1 views
0

У меня есть сайт с рейтингом, где люди могут «награждать» людей определенными наградами: «Самые красивые», «Awesomest», «Мне нравятся вам», «Самые горячие», «Самые приятные», , «Funniest» и т. Д., А также негативные, такие как «Lamest», «Stupidest», «I Hate you» и т. Д.Расчет рейтинга и награды от базы данных MySQL на рейтинге сайта

Когда кто-то добавляет нового человека, использующего мою тарифную страницу, он хранится в таблице с этими столбцами : от, до, награда. Так, например, если мой идентификатор пользователя равен 5, а человеку, которому я даю награду «самый симпатичный», 10, тогда она хранится следующим образом: 5,10, самая симпатичная.

Теперь, я хочу дать людям звания, во-первых, на основе каждой награды. Как человек, получивший самые «самые симпатичные» награды .. и затем, основываясь в целом, как человек, который получил наибольшее количество положительные награды. Для общего, люди должны downrank, если у них много негативных наград, и для поддержки положительных наград.

Я не могу (из-за того, что мой код закодирован) имеет другую таблицу для таких показателей, как: id, award, count (что может быть 10, lamest, 20, что означает идентификатор пользователя 10 и 20 наименований) .. Так как мне рассчитать? эффективным способом, в PHP.

Большое спасибо.

ответ

1

Пожалуйста, подумайте над тем, что вы сказали относительно «не может (из-за кодирования моего сценария)». Я уверен, вы узнаете, что можете это сделать. Просто каждый раз, прежде чем вставлять новую строку, просто обновите существующую строку, если таковая существует ...

+0

Да, я знаю, что было бы возможно, если бы я в значительной степени отредактировал код ... Но эти награды должны быть рассчитаны только на еженедельно или ежемесячно (через задания cron или даже вручную), поэтому, если это возможно, тогда было бы неплохо, если бы я мог сделать это с текущей структурой таблицы ..! – kaos7

+0

Хм хорошо, в этом случае вы можете запросить, например, все «самые симпатичные» обзоры, а затем перебрать результаты и сохранить для каждого идентификатора, который вы видите в счетчике в массиве счетчиков, и обновить его счет. Вы получаете то, что я говорю? – Noam

+0

Это должно сработать! Спасибо :) – kaos7