За последние 24 часа нас посетили 106082 программиста и 3019 роботов. Сейчас ищут 1340 программистов ...

Динамическая верстка турн.таблицы

Тема в разделе "PHP для новичков", создана пользователем bFree, 15 янв 2009.

  1. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Необходимо сверстать плейофф-таблицу. Но не просто сверстать, а динамически, т.е. учитывая кол-во команд.
    Таблица такого вида.
    http://xmages.net/out.php/i88881_table.png

    Понимаю, что надо делать циклами, понимаю, что надо делать какие-то счетчики.
    Можете подсказать, каким образом рисуются подобные таблицы? Какие счетчики берутся?
     
  2. djunkie

    djunkie Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    134
    Симпатии:
    0
    это не пхп, а верстка больше

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

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    скрин - это уже html верстка.
    В том то и дело, что не могу выделить зависимость
     
  4. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Данные приведены к дереву ?
     
  5. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Простите, я так понял, что вы имеете ввиду данные о командах?
    Объясните, пожалуйста :)
     
  6. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Выводить таблицу надо ведь из данных об играх, нет ?
    Нужно структурировать данные как-нибудь, если это еще не сделано.

    Например (корень дерева) так:
    PHP:
    1.  
    2. $table = array( 'team-5' => array('team-1', 'team-5') );
    3.  
    И так далее со вложенными массивами.
     
  7. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    вobsrv
    данные можно будет структурировать как угодно, ограничений не будет.
    для меня вся проблема именно в динамич. верстке такой таблицы, даже пустой
     
  8. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Почему своей головой нельзя поработать ? ;)

    Например простой вариант:
    PHP:
    1.  
    2. <?php
    3. $a = array('team-5' => array( 'Team-5' => array( 'Team-5' => array( 'Team-5' => NULL, 'Team-6' => NULL), 'Team-7' => array( 'Team-7' => NULL, 'Team-8' => NULL ) ),
    4.                                                             'Team-1' => array( 'Team-1' => array( 'Team-1' => NULL, 'Team-2' => NULL), 'Team-3' => array( 'Team-3' => NULL, 'Team-4' => NULL) )) );
    5.                        
    6. echo "<table border=0><tr>" . printWave($a) . "</tr></table>\n";
    7.  
    8. function printWave($a) {
    9.     static $width = 240;  // table height
    10.     $s = "";
    11.     $na = array();
    12.     foreach($a as $k=>$v) {
    13.         if (is_array($v)) $na = array_merge($na, $v);
    14.         $s .= "<table border=\"0\" height=\"" . $width . "\"><tr><td><span  style=\"margin: 2px; padding: 2px; border: solid 1px navy; background-color: #eee;\">" . $k . "</span></td></tr></table>\n";
    15.     }
    16.     $width = floor($width / 2);
    17.     return ((count($na))?printWave($na):"") . "<td style=\"border-right: solid 1px navy;\">" . $s . "</td>";
    18. }
    19. ?>
    20.  
     
  9. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    можете объяснить структуру данных?
    Как упорядочивать команды?

    Вах, вы сделали, помещая таблицу в таблицу, я пытался через rowspan. Спасибо :)

    ЗЫ думать, то думал, и делал, но версталось все очень криво. и юзалась инфа из SQL.
     
  10. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    bFree
    1. обычное дерево построенное на массивах ( Ваши слова ;) "данные можно будет структурировать как угодно, ограничений не будет" ).
    2. Какой смысл их упорядочивать в турнирной таблице ? Если так надо, то все равно изучать алгоритмы работы с "деревьями".

    Через rowspan более красиво, но более алгоритмично. Думаю без коллекции классов тяжеловато будет. Потеряв на большом количестве символов (тагов) выиграли по времени разработки.
     
  11. bFree

    bFree Активный пользователь

    С нами с:
    17 авг 2008
    Сообщения:
    81
    Симпатии:
    0
    Под словом упорядочивать, я имел ввиду как раз это самое дерево. Я не понимаю, как оно устроено.
    Таблица в таблице полностью устраивает.