Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146

Формирование таблицы из списка

26.03.2018, 11:31. Показов 868. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Имеется список разделов - х, в большинстве разделов имеются подразделы - y но есть разделы и без подразделов. Список формируется из базы данных и выводится циклом PHP. x y заранее не известны. Необходимо сформировать таблицу допустим из 3-х столбцов.
Условия: 1 столбцы должны быть максимально равно высокими, 2 список подразделов в разделе не должен прерываться на другой столбец. Как пример, на сайте http://avcomfort.ru подменю "Аудио".
Пока не придумывается принцип алгоритма по которому PHP должен разделить список на столбцы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2018, 11:31
Ответы с готовыми решениями:

Формирование выпадающего списка
Добрый день. Помогите, пожалуйста. В БД есть таблица приёма, где есть поле дата, время, имя. Через форму PHP пользователь записывается на...

Формирование выпадающего списка
Здравствуйте!!! Помогите разобраться с формой в php... Нужно чтобы при выборе одного из пунктов выпадающего списка формировался другой...

Формирование таблицы
Имеются 2 таблицы: users - игроки ( из нее берется столбец login) igri - сыгранные игры (в ней столбцы: ID_igri, k1 (id 1-ой команды),...

5
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
30.03.2018, 14:28
Цитата Сообщение от Old_Bob Посмотреть сообщение
Имеется список разделов - х, в большинстве разделов имеются подразделы - y
давайте без иксов и игриков
0
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
30.03.2018, 15:35  [ТС]
Цитата Сообщение от ytf Посмотреть сообщение
давайте без иксов и игриков
А как? Если заранее значения не известны?
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
30.03.2018, 17:45
если открыть сайт авкомфорт, и нажать правый клик по кнопке "аудио", выбрать "инспектор",
то вы увидите, что у ссылки "аудио" есть слой (div), который то скрыт, то видим,

у этого слоя есть вложенные слои - их 3, скорее всего админ сайта заполняет, в какой из колонок
будет категория 2-го уровня, но может быть и программный алгоритм на php, который запускается
раз в сутки (или при обновлении списка категорий админом), делая тоже самое за админа, есть и
третий вариант - jquery выполняет адаптирование списка категорий в браузере пользователя
0
16 / 16 / 2
Регистрация: 05.04.2012
Сообщений: 146
30.03.2018, 18:21  [ТС]
Цитата Сообщение от ytf Посмотреть сообщение
если открыть сайт авкомфорт, и нажать правый клик по кнопке "аудио", выбрать "инспектор",
то вы увидите, что у ссылки "аудио" есть слой (div), который то скрыт, то видим,
у этого слоя есть вложенные слои - их 3
Да с этим всё понятно.
Цитата Сообщение от ytf Посмотреть сообщение
но может быть и программный алгоритм на php
Нужно что бы работало на лету именно программно.
Цитата Сообщение от ytf Посмотреть сообщение
jquery выполняет адаптирование списка категорий в браузере пользователя
На jquery скорее всего список второго уровня может перейти в следующий столбик.
0
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
30.03.2018, 18:50
программный алгоритм на php - получить список подкатегорий внутри категории "аудио",
если у этих категорий есть дочерние, то их тоже получить

дальше создать массив, каждый элемент массива категория без вложенных или категория с внутренними категориями,
дальше прикидываем высоту блока каждого элемента, например 20 пикселей, если 1 категория, или кол-во категорий *
20 пикселей + 3, если есть вложенные категории

Добавлено через 4 минуты
если длина названия категории > 200 px, добавляем 20 пикселей, пока не поместится по ширине

Добавлено через 3 минуты
ну а дальше раскидываем элементы по трём столбцам по принципу "туда где меньше заполнена высота",
начиная с самого высокого элемента массива, либо методом перебора пробуем поместить каждый элемент
массива в один из трёх столбцов - сравниваем результаты и выбираем лучший вариант

Добавлено через 10 минут
например, три столбца, в первом 80 и 20, во втором 50 и 50, в третьем 33, 33 и 33, первым алгоритмом
результат был бы хуже, можно конечно сразу посчитать оптимальную высоту 100 и раскидывать с учётом стремления к этой высоте

например в 1й положили 80, во 2й 50, дальше нужно положить 50, но мы кладём во второй, так как приближение к значению 100
максимально в этом случае, дальше 33 можно положить в 1й или 3й столбец, если в 1й - приближение составит 20 и отдаление 13, то есть 7,
а во втором - 33, поэтому положим 33 в третий столбец, и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2018, 18:50
Помогаю со студенческими работами здесь

Формирование таблицы
Добрый вечер. Подскажите как сформировать таблицу: 1. нужно сформировать из дат (получаем из бд) шапку 2. вывести учеников и их...

Формирование списка в Word на основании таблицы Excel
Добрый день! Столкнулся с проблемой: Мне нужно создать в Word список из одинаковых строк и заполнить его данными из таблицы Excel....

Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N
люди помогите пожалуйста!!! Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N.

Формирование списка, состоящего из списка самого низшего уровня
Написать программу формирования списка, состоящего из списков самого низшего уровня для заданного списка.

Дублирование вхождения каждого элемента списка One и формирование из этих значений списка Double (пояснить условие)
Здравствуйте. Вот собственно само задание: В составе программы описать функцию, которая дублирует вхождение каждого элемента списка One и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru