0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 4
|
|
1 | |
Вывод данных из базы данных MySQL в PHP в виде дерева.24.01.2011, 07:00. Показов 4768. Ответов 3
Метки нет Все метки)
(
У нас в сети решили сделать портал-базу по рефератам. Все я сделал остались две траблы, про первую я здесь и пишу.
Итак, имеется база с названием 'referats'. В ней есть таблицы: {cat [id, name, info]; news [id, data, title, text]; refs [id, scat_id, title, type_id, type, descr, date, pages, comm]; scat [id, cat_id, name]; types [id, name]}. Таблицы отмечены {}, поля в них - [] ![]() Задача такая: нужно организовать на странице вывод вывод работ по категориям в таком виде. Сверху должна быть шапка: все предметы, А-Б, В-Г, Д-Е, Ж-З, И-К, Л-М, Н-О, П-Р, С-Т , У-Ф, Х-Ч, Ц-Я Дальше само тело вывода: тут должно быть дерево, в котором должны быть выведены категории (cat [name]), причем, если у категории есть подкатегории (то есть в scat есть ссылка на данную категорию в cat - например, scat [cat_id = 7] означает, что в категории cat [id] = 7 есть подкатегории в таблице scat с полем [cat_id] = 7), то слева от категории должен быть '+' и при нажатии на категорию, она бы раскрывалась в виде дерева, меняла цвет на красный, и под ней появлялись бы подкатегории и '+' менялся бы на '-'. Соответственно, все наоборот при закрытии. Немного подробнее о выводе дерева. Как уже, наверное, понятно, дерево должно выводится в зависимости от запроса из шапки, то есть по алфавитному порядку (или сразу все, в зависимости от выбора). То есть, нажали, допустим, на Ж-З - выведется дерево из категорий, начинающихся на Ж и З и т.д., нажали на П-Р - из категорий, начинающихся на П-Р. По умолчанию, при открытии страницы, должны выводиться категории А-Б.Что касается ссылок. Категории должны иметь ссылки в виде /?mode=cat&id=7 (где ID - это cat [id]), подкатегории - в виде /?mode=item&id=7&sid=1 (где ID - это cat [id], sid - это scat [id]), работы - в виде /?mode=info&id=386 (где ID - это refs [id]). Причем, есть еще один нюанс: под деревом должна быть строка: все работы, курсовые, рефераты, контрольные, дипломы, доклады, отчеты. Рядом с этими словами должны быть checkbox’ы, при выборе которых в дереве должны отображаться категории/подкатегории, имеющие внутри себя ТОЛЬКО отмеченные работы. Кстати, это {types [name]}. При выборе категории (если она без подкатегорий) или подкатегории, должна открыться новая страница, скажем, spisok.php вместо данной (у меня это все открывается внутри таблицы), на которой сверху наше дерево с выбранным буквенным (или общим) разделом, а под ним собственно, таблица, в которой работы из выбранной категории (подкатегории). Причем, есть еще один нюанс: под деревом должна быть строка: все работы, курсовые, рефераты, контрольные, дипломы, доклады, отчеты. Рядом с этими словами должны быть checkbox’ы, при выборе которых в дереве должны отображаться категории/подкатегории, имеющие внутри себя ТОЛЬКО отмеченные работы. Соответственно, в таблице должны отображаться, только те работы, которые сооответствуют выбранному {types [name]}. Теперь подробней о структуре таблицы. Сверху таблицы - шапка, в которой слева должны быть подкатегории в выбранной категории (если таковые имеются, иначе NULL), справа должны быть номера страниц (поскольку работ ОЧЕНЬ много, вывод нужно сделать постраничным). Далее, шапка самой таблицы. Таблица должна состоять из 5 колонок: ID (refs [id]), тема работы (refs [title]), тип работы (refs [type]), объем (refs [pages]), дата (refs [date]). В таблице, собственно, вывод запроса. Под таблицей шапку, аналогичная той, что над таблицей: шапка, в которой слева должны быть подкатегории в выбранной категории (если таковые имеются, иначе NULL), справа должны быть номера страниц (поскольку работ ОЧЕНЬ много, вывод нужно сделать постраничным). Вот такая вот задачка. Подобные дерева ввода данных я видел, здесь лишь усложнена структ
0
|
|
24.01.2011, 07:00 | |
Ответы с готовыми решениями:
3
Вывод таблицы базы данных MySQL через PHP Php + mysql = отобразить перечень таблиц базы данных, схему данных
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
24.01.2011, 09:40 | 2 |
признаюсь честно, я не дочитал до конца!
Вполне понятна твоя задача, не понятно тлько одно, что ты хочет от форума. Я конечно могу сейчас у себя создать все таблицы о которых ты писал, написать скрипты для работы с этими таблица и отдать всё это тебе, но это будет глупо по отношению к тебе - потому что ты не сделал это сам, и глупо по отношению ко мне - потому что я писал всё это на шару. Задай конекретный вопрос, что конкретно не получается, мы тебе поможем! Жлеательно не перемешивай все задачи в кучу, а отдельно по каждой проблеме задавай вопрос!
0
|
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 4
|
|
24.01.2011, 12:05 | 3 |
Для начала я не могу сделать побуквенный вывод, не говоря уже о ссылках. Nested Set попробовал, но запутался окончательно, т.к. там используются вспомогательные три таблицы, а что с ними делать и с чем их есть - я так и не понял
![]() С постраничным выводом в таблицы я вроде бы разобрался, по крайне мере, на отдельной базе он у меня получился. Так что сейчас для меня главное - это побуквенный вывод с подкатегориями.
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
24.01.2011, 14:34 | 4 |
select * from table where teme like('A%')
этот запрос покажет все записи у которых первая буква равна А
0
|
24.01.2011, 14:34 | |
Помогаю со студенческими работами здесь
4
Реализовать вывод данных в консоль в виде дерева
Выборка из базы данных php +mysql Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |