Forum Webscript.Ru
Программирование => PHP => Тема начата: Rodent от 10 Июня 2006, 22:28:24
-
Что есть.
Таблица, куда заноситься id-команды и время прохождения гонки.
При выводе результатов на монитор пользователя производиться рассчет очков по нескольким методикам.
никуда результаты расчетов не сохраняются.
Что нужно.
Нужно создать турнирную (общую) таблицу с результатами (суммой всех очков команд по весм гонкам).
Как это сделать?
1. создавать временную таблицу, куда будут заноситься результаты гонок и суммировать
2. каждый раз вычислять очки по каждой гонке отдельно и потом суммировать (но тогда получается слишком много циклов) да и массив будет нехилый...
Как поступить? Совет дайте пожалуйста.
-
Ладно, в этом вопросе я помощи не дождался... :-( наверное у всех были очень бурные выходные... :-)
Я решил данную проблему путем составления доп таблицы и уже ее выводом на общее рассмотрение.
однако, у меня возник еще один вопрос. Надеюсь здесь мне помогут советом.
У меня получилось так, что несколько команд финишировали с одним временем, как сделать так в цикле, чтобы команды с одинаковым временем вставали на одно призовое место.
допустим.
команда - время - очки
команда А - 1,50 - 5
команда Б - 1,55 - 4
команда С - 1,55 - 4
команда Д - 1,59 -3
...
общее число команд около 80
нужно сделать так чтобы команды с одинаковым временем записывали в одну ячейку. т.е.
1 место - команда А
2 место - команда В, команда С
3 место - Команда Д
$result = запрос всех команд в игре со временем
for ($j=0; $j $r = mysql_fetch_array($result);
$sql = запрос кол-ва команд с одиноковым временем r[time]
$result2 = mysql_query($sql);
$num = mysql_num_rows($result2);
while ($r2 = mysql_fetch_array($result2)) {
echo \'вывод списка\';
}
$j = $j+$num-1; // типа чтобы пропустить те котроые уже посчитали...
endfor;
но вот тут и загвоздка, выводит не то... команды дублируются... некоторых вообще нет...
HELP SOS
Дайте плиз совет.... я практически уверен, что мыслю не в том направлении... хотя бы дайте направление...
-
Сделай проще, зачем тебе 2 запроса? поставь в 1 запрос сортеровку по времени, а за место
echo \'вывод списка\';
создай масив почти такойже только индекс пусть бежит отдельно.
проверяй не тоже ли время у прошлого элемента в масиве.
если да, то добовляй в прошлый элемент имя этой команды, заодно и придержи индекс масива.
P.S. на с чет первого вопроса: MySQL умеет делать математические операции меж несколькими таблицами.
-
Я чего-то не догоняю, как мне вывести, чтобы две команды оказались на одном месте, при этом не сбился счетчик?
-
допустим $mas- масив после запроса MySQL тоесть
тип $mas[$key][\'name\'], $mas[$key][\'date\'];
$key -порядковый номер строки, \'name\' \'date\'- твои столбци (имя и время)
foreach($mas as $key => $val)
if(($key!=0) && ($mas[$key-1][\'date\']==$val)){
$mas[$key-1][\'name\'].=$val[\'name\'];
unset($mas[$key]);
}