Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 33

Как сделать динамическую таблицу?

23.02.2023, 19:46. Показов 523. Ответов 5

Студворк — интернет-сервис помощи студентам
У меня есть отделы в одной таблице и сотрудники в другой таблице. Как я могу вызвать это с помощью php, чтобы отделы отображались в части thead таблицы HTML, а сотрудники, связанные с этим отделом, отображались в части tbody таблицы HTML.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<table>
    <thead>
        <tr>
            <?php
                foreach($dep as $dep_id){
            ?>
            <th><?=$dep_id?></th>
            <?php
                }
            ?>
        </tr>
    </thead>
    <tbody>
        <?php
            foreach($dep as $dep_id){
            $sqlempl=odbc_exec($connection,"SELECT * FROM EMPL_TABLE WHERE EMPL_ID='".$dep_id."'");
            while($empl=odbc_fetch_array($sqlempl)){ 
        ?>
        <tr>
            <td><?=$empl['EMPL_NAME']?></td>
        </tr>
        <?php
            }
            }
        ?>
    </tbody>
</table>
код, который я написал, работает неправильно, он собирает всех сотрудников в первом отделе.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2023, 19:46
Ответы с готовыми решениями:

Подскажите как сделать динамическую форму
Добрый вечер! Есть форма: &lt;input type=&quot;checkbox&quot; name=&quot;ch1&quot;&gt; &lt;input type=&quot;text&quot; class=&quot;text&quot; name=&quot;n1&quot;&gt; &lt;input...

Как сделать динамическую таблицу?
Добрый день, подскажите как можно сделать таблицу для игры, и что бы её размерность задавал пользователь какую технологию лучше...

Как сделать динамическую таблицу меняющую размеры?
Как сделать динамическую таблицу меняющую размеры?

5
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
23.02.2023, 19:51
Вы составляете HTML каркас. Пишите JS код с использованием ajax \ fetch и подгружаете любые данные уже в каркас в завимости от условий и стадий

1) Инициализация таблицы ajax \ fetch (На вызов PHP файла)
1.1) Получить отделения
1.2) От первого отделения получить сотрудников
1.3) Вывести отделения в первую таблицу, сотрудников первого отделения во вторую

2) Установить клик на первую таблицу отделений, который будет делать ajax \ fetch запрос (На вызов PHP файла)
2.1) Получить сотрудников по выделенному отделению
2.1) Вывести сотрудников во вторую таблицу.

Задача эта выглядеть так
0
Эксперт PHP
 Аватар для liris
4434 / 1071 / 158
Регистрация: 16.01.2023
Сообщений: 2,634
23.02.2023, 20:22
То есть вы хотите так примерно?

Отдел 1 Отдел 2 Отдел 3
Иванов Петров Сидоров

Цитата Сообщение от Adam Baburin Посмотреть сообщение
код, который я написал, работает неправильно
У вас нет связи между столбцами и строками в данной таблице.
Отделы выводятся вертикально, а таблица заполняется горизонтально.
Вам нужно сформировать массив, где есть соответствие отделов и сотрудников. Чтобы вы точно знали, что этот сотрудник входит именно в этот отдел, например так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$departments = [
0 => 'Отдел 1',
1 => 'Отдел 2',
2 => 'Отдел 3',
];
 
$personalities = [
0 => ['Иванов', 'Григорьев', 'Антонов'],
1 => ['Петров', 'Сергеев'],
2 => ['Сидоров', 'Васильев'],
];
 
$numberDepartments = count($departments);
Тогда заполняете таблицу следующим образом. Шапка:

PHP
1
2
3
4
5
$thead = '<thead><tr>';
for ($i = 0; $i < $numberDepartments; $i++) {
    $thead .= '<td>' . $departments[$i] . '</td>';
}
$thead .= '</tr></thead>';
Тело таблицы заполняется аналогично, но есть нюанс. Вам предварительно нужно узнать, сколько вам нужно строк в таблице. Потому что в одном отделе может быть больше сотрудников, чем в другом. И рисовать именно нужное число строк (в каждой строке вызывая цикл по каждому сотруднику).

P.S. Вообще это не самый удобный вывод, имхо.
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
23.02.2023, 20:43
Цитата Сообщение от liris Посмотреть сообщение
P.S. Вообще это не самый удобный вывод, имхо.
Верно. По этому я и привёл пример с выбором в левосторонней области отдела, а в правом вывод сотрудников. В добавок можно прикрутить поиск по сотруднику, и сразу по имени отфилировать все отделы и сотрудников
0
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 33
23.02.2023, 21:07  [ТС]
Здесь должен быть echo "</tr><tr>";
0
Эксперт PHP
 Аватар для liris
4434 / 1071 / 158
Регистрация: 16.01.2023
Сообщений: 2,634
24.02.2023, 06:55
Цитата Сообщение от Adam Baburin Посмотреть сообщение
Здесь должен быть
Я вам пример привел, дальше просто лень писать стало. Тело таблицы строится полностью аналогично заголовку. Если по вашему примеру.
Но лично я бы сделал примерно так:

ФИО Должность
Отдел 1
Иванов Начальник
Петров Первый зам
Сидоров Секретарь
Отдел 2
Андреев Главбух
Антонов Бухгалтер
Отдел 3
Сергеев Бригадир
Петренко Рабочий

Причем можно сделать таблицу раскрывающейся (по умолчанию отделы свернуты, по клику раскрывается нужный отдел). Это на JS буквально за пару минут можно сделать. Даже на ванильном.

Добавлено через 3 минуты
Цитата Сообщение от liris Посмотреть сообщение
Но лично я бы сделал примерно так
Тогда у вас построение будет очень простым. Без дополнительных сложностей типа учета количества работников в каждом отделе.

Примерно так:

PHP
1
2
3
4
5
6
7
8
echo '<table>';
foreach ($departments as $department) {
    echo "<tr><td colspan='2'>" . $department['name'] . "</td></tr>";
    foreach ($departments['personalities'] as $person) {
        echo "<tr><td>" . $person['name'] . "</td><td>" . $person['position'] . "</td></tr>";
    }
}
echo '</table>';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2023, 06:55
Помогаю со студенческими работами здесь

Как распарсить динамическую таблицу?
Здравствуйте. Пытаюсь разобраться в парсинге страниц. Остановился пока на простой BeautifulSoup4 (Python3). Позже думаю на Scrapy перейти. ...

Как закрасить динамическую таблицу
Закрасил таблицу в шахматном порядке, но с остальными двумя не могу, прошу помощи( Закрас шахматной : let n = 10, s; ...

WPF, как создать динамическую таблицу?
Всем доброго дня. Возникла задача сделать средствами WPF динамическую таблицу. Суть в том что количество столбцов в ней может меняться. Я...

Как связать динамическую таблицу Excel с PowerPoint
Добрый день! Столкнулся с проблемой и не могу понять как ее решить и вообще, возможно ли это. Суть в чем: Есть файл эксель со множеством...

Как реализовать динамическую таблицу средствами WPF?
Всем доброго дня. Возникла потребность сделать средствами WPF довольно сложную динамическую таблицу, на вроде такого. Я далеко не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru