Подвижный Тип: Категория отношений - PullRequest
4 голосов
/ 02 апреля 2012

Я хотел бы знать отношения категории в MovableType CMS.

В настоящее время у меня есть 2 категории с именами «Категория A» и «Категория B».И у меня есть блог с именем «Блог A».«Категория A» и «Категория B» находятся в «Блоге A».Когда я создаю «Запись 1» в разделе «Блог А», я выбрал «Категория А» для этой «Записи 1».Но когда я проверил в базе данных, я увидел, что имя столбца "entry_category_id" в таблице "mt_entry" равно "NULL".

Что я пытаюсь сделать, так это то, что я хотел бы получить все записи в категории «А».Пожалуйста, дайте мне знать, если я должен искать в другой таблице в базе данных MovableType эти записи в определенной категории.

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012

Столбец mt_entry.entry_category_id не используется (я думаю, это остаток от старой версии схемы). Категории, связанные с записью, хранятся в таблице mt_placement.

Чтобы получить все записи в определенной категории, сначала найдите идентификатор категории (он уникален для всех блогов, либо просмотрите его с помощью списка категорий с помощью параметра id в URL, либо выполните поиск в таблице mt_category), а затем выполните запрос. как этот:

SELECT placement_entry_id from mt_placement WHERE placement_category_id = <your category numeric ID>;

Вы получите список идентификаторов записей, связанных с этой категорией.

2 голосов
/ 03 апреля 2012

Или, если вы хотите сделать все это в одном запросе, попробуйте это:

SELECT entry_id, entry_title
FROM mt_entry, mt_placement, mt_category
WHERE mt_entry.entry_id = mt_placement.placement_entry_id
AND mt_placement.placement_category_id = mt_category.category_id
AND mt_category.category_label =  'YOURCATEGORYLABELGOESHERE';

(замените YOURCATEGORYLABELGOESHERE на имя категории, которую вы хотите)

Это вернетсписок всех записей (и их идентификаторов) в этой категории.

Обратите внимание: если у вас есть несколько блогов, в которых есть категории с одинаковыми именами, вам может потребоваться добавить дополнительную строку, чтобы выбрать только записи из блогов, которые выхочу, что-то вроде

AND mt_category.blog_id = 2

или

AND mt_category.blog_id in (2, 5, 7)
...