Сортировка данных в PHP для отображения одиночного турнира в HTML - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть таблица со следующими столбцами и полями:

userid  round faceoff username
------------------------------
  1       1     2      Kevin
  3       1     1      Steve
  4       1     3      Jake
  9       1     4      Sam
  1       2     1      Kevin
  9       2     2      Sam
  1       3     1      Kevin

Вокруг столбцы, а вбрасывание - строки. Таким образом, раунд 1 имеет макс вбрасывания 4, а раунд 2 имеет макс вбрасывания 2 и т.д.

Я хочу отображать данные на пользовательских экранах, например, так (основной HTML):

Round 1      Round 2     Final (round 3)
 Steve
              Kevin
 Kevin
                          Kevin
 Jake
              Sam
 Sam

Вот что у меня есть:

$tor это массив из MySQL, я var_dump() это и все есть. У меня просто проблемы с циклами for:

for ($u=0;$u<=$torindex;$u++)
{
    for ($r=1;$r<=$torindex+1;$r++)
    {
        if ($tor[$u]['round'] == $r) 
        {
            for ($f=1;$f<=$torindex+1;$f++)
            {
                if ($tor[$u]['faceoff'] == $f) $placement[$r][$f] = $tor[$u]['userid'].":".$tor[$u]['username'];
            }
        }
    }
}

Куда мне идти отсюда?

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Для каждой строки в таблице данных вы можете найти правую строку в таблице HTML, чтобы отобразить ее с помощью следующего уравнения:

rowNum = pow(2, round - 1) + (faceoff - 1) * pow(2, round);

так что это должно работать в MySQL:

SELECT * FROM tournament ORDER BY pow(2, round - 1) + (faceoff - 1) * pow(2, round);
0 голосов
/ 17 ноября 2011

Сортируйте его по раунду, как у вас, и по мере циклического перемещения по строкам отслеживайте текущий раунд.Если раунд строки не равен текущему раунду, вы знаете, что двигаться вправо.Вы можете закрыть и запустить div или ul и перемещать их влево.

http://jsfiddle.net/RxDrd/

0 голосов
/ 17 ноября 2011

Структура

Я использовал планировщик турниров по нокауту класса Николаса Моссора Ратмана для этой задачи в прошлом с большим успехом.Учитывая команды / игроков, он будет рассчитывать связи и выбывания на основе окончательного результата матчей.

Вывод

Для вывода CSS / HTML вместо сгенерированного GD изображения, который дает класс, я использовал One Fork's jQuery & JSON, чтобы нарисовать турнирную таблицу с одиночным исключением с некоторыми изменениями для совместимости с IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...