Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Навигация сайта. Вывод категорий, которые не пустые 
:(
    Опции темы
DeamonShan
Дата 26.7.2011, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



дайте идею пожалуйста.

Есть много категорий и подкатегорий (уровни разные и нет им никакого ограничения). Соответсвенно не во всех категориях и подкатегориях есть материал. Нужно вывести только те категории, в которых есть материал. Любая родительская категория может иметь материал. Представление ввиде дерево должно быть...

Мне бы запрос к баже написать, а дерево я построю)))

Добавлено через 14 минут и 15 секунд
Таблицы:

Категории:

id | parent_id | name

Материалы:

id | category_id | name | story



думаю нет необходимости разъяснять поля таблиц...
PM MAIL   Вверх
CruorVult
Дата 26.7.2011, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



ну по хорошему делается так:
В категориях сделать поле: has_materials (bool)
При редактировании категорий-материалов выставлять значение этого поля 0 или 1. И в запросе добалять только "WHERE has_materials=1".


Это сообщение отредактировал(а) CruorVult - 26.7.2011, 12:16
PM MAIL Skype   Вверх
DeamonShan
Дата 26.7.2011, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



CruorVult, просто у меня из начально этого не было. а перестроить структуру БД не могу к сожалению...
PM MAIL   Вверх
CruorVult
Дата 26.7.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



DeamonShan, в смысле перестроить нельзя? поле добавить чтоли нельзя?

Каким образом вообще редактируются материалы и категории? вручную чтоли или через какой-то интерфейс?
PM MAIL Skype   Вверх
DeamonShan
Дата 26.7.2011, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



CruorVult,  интерфейс, причем...это не совсем материалы.. а товары интернет-магазина.

В на сайт попадают только те товары, которые оприходованы. то есть есть типа 1С интерфеса (веб-версия, самописная)  туда приходуют товары. и от туда же выписывают. поэтому структуру БД я не могу изменить. там придется много чего переписывать.
PM MAIL   Вверх
CruorVult
Дата 26.7.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Код

SELECT categories.* FROM categories INNER JOIN materials ON materials.category_id=categories.id

PM MAIL Skype   Вверх
DeamonShan
Дата 27.7.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



CruorVult, я так делал... оно выводит только те категории в которых есть товары, а мне нужно еще выводить родительские категории тех категорий, в которых есть товар в виде дерево)))

походу одним запросом не не обойтись!
PM MAIL   Вверх
CruorVult
Дата 27.7.2011, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



Цитата(DeamonShan @  27.7.2011,  11:36 Найти цитируемый пост)
походу одним запросом не не обойтись!

сдесь рекурсивно нужно, либо скриптом генерить запросы(долго), либо мускл процедуру рекурсивную писать.

но лучший вариан(по быстродейтвию) все же реструктурировать БД
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0640 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.