Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/23: Рейтинг темы: голосов - 23, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 4
1

Вывод данных из базы данных MySQL в PHP в виде дерева.

24.01.2011, 07:00. Показов 4421. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2011, 07:00
Ответы с готовыми решениями:

Вывод данных из базы на страницу php mysql
что не так? <?php require_once ("connections/MySiteDB.php"); $localhost = "localhost"; $db...

Вывод таблицы базы данных MySQL через PHP
Всем доброго времени суток. Я пытался вывести таблицу из базы данных Денвера в браузер, результат...

Php + mysql = отобразить перечень таблиц базы данных, схему данных
Всем привет, нужна ваша помощь, как реализовать данные задания? 1. Создать главную страницу сайта,...

Вывод необходимых данных из базы данных MySQL
Всем привет. Подскажите как проще всего реализовать вывод необходимых данных из бд, проблема в...

3
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2011, 14:34

Вывод дерева сотрудников с Базы данных
Всем привет. Появилась такая проблема, некорректно отображается дерево сотрудников организации....

Реализовать вывод данных в консоль в виде дерева
Напишите код. Если нет времени, буду очень благодарен если подскажете алгоритм. Задание 1. Дан...

Ajax отправка данных из формы в базу mysql и вывод из базы mysql
$(function() { $('#chat_submit').click(function(e) { e.preventDefault(); ...

Выборка из базы данных php +mysql
Привет программисты! Хотел создать двухуровневою реф. систему , но не могу сообразить как...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru