Я хотел бы создать страницу администрирования для своего сайта, где я мог бы использовать несколько флажков для хранения/обновления многих категорий для одного сообщения. Так я создал три таблицы:Как создать администратора с несколькими категориями в PHP и MySQL?
POST Table (id (index, auto-increment, not null), subject, content)
CATEGORIES Table (id (index, auto-increment, not null), name)
POST_CATEGORIES Table (id (index, auto-increment, not null), id_cat (foreign key to CATEGORIES.id), id_post (foreign key to POST.id))
(. Эта последняя таблица выстраивания отношений между стойками и его категориями)
Так что я пытаюсь перечислить категории с несколькими флажками. Я делаю этот запрос, но он не работает, как ожидалось:
$select = $db->query('SELECT categories.id, categories.name, post_categories.id_cat AS fk_cat, post_categories.id_post AS fk_post, post.id AS post_id
FROM `categories`
LEFT JOIN post_categories
ON categories.id = id_cat
LEFT JOIN posts
ON post.id = id_post');
Результата у меня есть список категорий, но каждое название категории повторяется в зависимости от количества сообщений, имеющих эту категория (например: если пост 1 и 2-й категории имеют обе категории 1, категория 1 будет отображаться 2 раза в моем списке).
EDIT: Спасибо за ответы, вот sqlfiddle, чтобы увидеть, что происходит ... http://sqlfiddle.com/#!9/4c304/1
(я пытаюсь отобразить список категорий не будет выбрать * из. категории таблицы, потому что в следующем шаге, я хотел бы правильные категории, которые будут проверены, когда я редактировать сообщение.)
Хороший способ задать такие вопросы - подготовить [SQL Fiddle] (http://sqlfiddle.com/), чтобы читатели могли видеть, что проблема заключается в том, что при добавлении детали в вопрос, как вы это делали). Возможность визуализации проблемы очень полезна. – halfer