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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мультикатегории 
:(
    Опции темы
DioNiR
Дата 24.7.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообщем встал вопрос о создании мультикатегорий для новостей.

Как я понял делается это через 3 связующию таблицу.
Таблица новостей
id
name
text

Таблица категорий
id
name

Связующая таблица
id
nid
cid

А теперь собсвенно вопрос как это всё обьеденить?
По каким принципам идти?
Лазия в поисках информации я натыкался на подобные запросы:
Код
SELECT 
    news.*, 
    cat.*
FROM news
INNER JOIN catsviaz
    ON catsviaz.id_news = news.id
INNER JOIN cat
    ON cat.id =catsviaz.id_cat
WHERE news.id = 5

Но тут я  получаю одну новость столько раз сколько у неё категорий но в разных запросах новые категории.

Может есть какие то другие решения?
Допустим все категории изначально прогрузить к скрипту, и потом работать с ними?
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
mogul82
Дата 25.7.2009, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: -5



Если нужны под-категории в категориях то просто создай поле в таблице и пиши родную\родительскую категорию в неё.


PM MAIL   Вверх
skyboy
Дата 25.7.2009, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(DioNiR @  24.7.2009,  19:55 Найти цитируемый пост)
А теперь собсвенно вопрос как это всё обьеденить?

а как именно ты собираешься "это объединять"?
получить все новости из определенной категории?
получить все категории для выбранной новости?
получить все последние новости в каждой категории?
получить количество новостей в каждой категории?
получить все сегодняшние новости с указанием одной из категорий, к которым новость относится?
ещё есть куча вараинтов. это я так, навскидку привел. может, сначала определиться с логикой, а потом уже запросы писать. не?

PM MAIL   Вверх
DioNiR
Дата 25.7.2009, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
получить все категории для выбранной новости?

--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
lukas
Дата 25.7.2009, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



DioNiR, вариант который ты привел один из правильных, других правильных вариантов я не знаю и не видел.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
skyboy
Дата 25.7.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(DioNiR @  24.7.2009,  19:55 Найти цитируемый пост)
я  получаю одну новость столько раз сколько у неё категорий но в разных запросах новые категории

а тебе надо одна запись?
тогда используй group by + group_concat()
PM MAIL   Вверх
DioNiR
Дата 28.7.2009, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
DioNiR, вариант который ты привел один из правильных, других правильных вариантов я не знаю и не видел.

Да категории я прогрузил.
Но что делать со связкой? Не грузить же их как категории.
Если учесть что новостей может быть 1000+ и у каждой новости от 1 до N числа категорий.
То можно получить массив из 3000+ записей.

Сделать запрос для связки для каждой новости, но так кол-во запросов может быть ошеломляющим.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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