Здравствуйте. Нужна ваша помощь-))
Думаю, проще всего объяснить на таком примере как расчёт рейтинга каких-нибудь команд.
Для начала суть идеи:
есть запрос
по этому запросу я нахожу людей у которых есть вещи 111 и 222. Получаю результат (еcли делать print ""): 5, 23, 78, 345, 654, 701 - ид обладателей.
Каждый из людей состоит в какой-то команде, поэтому делаю такой запрос
по этому запросы определяю id_команды в которых состоят участники. Получаю результат (если делать print ""): 1, 11, 13, 1, 13, 13 - ид команд.
Т.е. получается всего три команды: 1, 11, 13
Теперь нужно распределить очки. Очки распределяю так: каждому учатнику по 5 очков ИЛИ даю по 5 очков каждой команде в списке - 1, 11, 13, 1, 13, 13 - т.е. команда 1 - получит 10 очков (т.к. с списке повторяется 2 раза), команда 11 - получит 5 очков (повторяется 1 раз), команда 13 - получит 15 очков (повторяется 3 раза).
и вот тут у меня проблема, как мне определить сколько раз повторяется в массиве id_команды чтобы это кол-во раз умножить на 5 и получить правильные очки. Ниже уже реальный пример как делал
но тут считается только +5 очков командам 1, 11, 13 без умножения...
Вообщем основная проблема в определении кол-ва повтров в списке и умножение этого кол-во на 5 и вынос куда-нить))
Заранее спасибо)
Думаю, проще всего объяснить на таком примере как расчёт рейтинга каких-нибудь команд.
Для начала суть идеи:
есть запрос
Код:
SELECT номер FROM люди WHERE предмет=111 or предмет=222;
Каждый из людей состоит в какой-то команде, поэтому делаю такой запрос
Код:
SELECT id_команды FROM команды WHERE участник=5 or участник=23 or участник=78 or guid=345 or guid=654 or guid=701;
Т.е. получается всего три команды: 1, 11, 13
Теперь нужно распределить очки. Очки распределяю так: каждому учатнику по 5 очков ИЛИ даю по 5 очков каждой команде в списке - 1, 11, 13, 1, 13, 13 - т.е. команда 1 - получит 10 очков (т.к. с списке повторяется 2 раза), команда 11 - получит 5 очков (повторяется 1 раз), команда 13 - получит 15 очков (повторяется 3 раза).
и вот тут у меня проблема, как мне определить сколько раз повторяется в массиве id_команды чтобы это кол-во раз умножить на 5 и получить правильные очки. Ниже уже реальный пример как делал
Код:
$предмет= mysql_query("SELECT номер_человека FROM люди WHERE предмет=111 or предмет=222");
while ($предмет_А = mysql_fetch_array($предмет))
{
$команда = mysql_query("SELECT номер_команды FROM команда WHERE номер_человека=".$предмет_А['номер_человека']."");
while ($команда_А = mysql_fetch_array($команда))
{
$очки = mysql_query("SELECT очки_команды FROM рейтинг_команд WHERE номер_команды = ".$команда_А['номер_команды']."");
while ($очки_А = mysql_fetch_row($очки))
{
$рейтинг = 0;
$рейтинг = $очки_А['очки_команды']+5;
mysql_query("UPDATE рейтинг_команд SET очки = ".$рейтинг." WHERE номер_команды = ".$команда_А['номер_команды']."");
}
}
}
Вообщем основная проблема в определении кол-ва повтров в списке и умножение этого кол-во на 5 и вынос куда-нить))
Заранее спасибо)