За последние 24 часа нас посетил 18271 программист и 2253 робота. Сейчас ищут 898 программистов ...

Вывод базы на страницу

Тема в разделе "PHP для новичков", создана пользователем hack-dag, 10 ноя 2016.

  1. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    Здравствуйте.
    подскажите пожалуйста как можно осуществить такую задачу.
    в общем есть таблица в базе с 2 колонками (раунд и пользователь)
    нужно сделать <table> из 3 столбцов в которых отображалось бы:
    1 столбец - Раунды
    2 столбец - Половина пользователей
    3 столбец - Остальная половина пользователей.
    пользователей всегда четное количество
    наподобие этого
    [​IMG]
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @hack-dag, а где хранится связь: N раунда => пользовател1 && пользователь2 ? Чтобы было более понятно, то как вы определяете, что в первом раунде встретились "вася" и "антон", а не "вася" и, например, "юра"?
     
  3. hack-dag

    hack-dag Активный пользователь

    С нами с:
    3 июл 2016
    Сообщения:
    20
    Симпатии:
    0
    я наверно не правильно обьяснил..
    в общем вот как выглядит таблица в базе(реальная таблица). и как ее нужно отобразить на странице[​IMG]

    у всех раунд равен единице
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Возможно. При чем, как в первый раз, так и во второй. Попробую предположить:
    PHP:
    1. <?php
    2. // Результат запроса к БД
    3. $query_result = [
    4.    ['round' => 1,'name' => 'Вася'],
    5.    ['round' => 1,'name' =>'Юра'],
    6.    ['round' => 2,'name' => 'Слава'],
    7.    ['round' => 2, 'name' => 'Антон'],
    8.    ['round' => 1,'name' => 'Вася'],
    9.    ['round' => 2,'name' => 'Юра'],
    10.    ['round' => 2,'name' => 'Слава'],
    11.    ['round' => 1,'name' => 'Антон'],
    12. ];
    13. // Группируем по раундам
    14. $tmp = [];
    15. foreach($query_result as $row) {
    16.    $tmp[$row['round']][] = $row['name'];
    17. }
    18. // Выводим, разбивая участников одного раунда по парам
    19. foreach($tmp as $round => $users) {
    20.    foreach(array_chunk($users, 2) as $pair) {
    21.      echo $round , ' => ', $pair[0], ' + ', $pair[1], PHP_EOL;
    22.    }
    23. }
    Если участников одного раунда будет четное количество, то проблем возникнуть не должно.
    --- Добавлено ---
    P.S.
    Не заметил сразу. В таком случае, группировать по раундам не нужно. Разбили массив по парам (array_chunk) и выводим.