Моя конечная цель – генерировать ссылки тегов для сообщений в блогах, теги, относящиеся к сообщению.
В настоящее время мой запрос имеет GROUP_CONCAT
который захватывает связанные теги, а значение столбца возвращающих tags
– это что-то вроде:
«Бруклин, Манхэттен, Нью-Йорк»
из
SELECT post.id, post.name, GROUP_CONCAT( tags.name order by tags.name ) AS tags FROM post LEFT JOIN tags_items ON post.id = tags_items.post LEFT JOIN tags ON tags_items.tag = tags.id
С этой строкой, в моем серверном коде, я разбиваю ее запятой и перебираю, чтобы генерировать теги. Однако теперь мне нужно сделать эти ссылки, и мне нужно знать соответствующий идентификатор каждого из тегов, чтобы создать ссылку, например <a href="?tag=1">New York</a>
. Моя структура HTML будет такой:
<div class=post> <h2>Rakim Allah!</h2> <div class=tags> <a href="/tags/1">Brooklyn</a> <a href="/tags/2">Manhattan</a> <a href="/tags/3">New York</a> </div> </div>
таблица tags
:
id name 1 Brooklyn 2 Manhattan
таблица tags_items
(нет pk):
post tag 1 1
Вы можете попробовать добавить идентификатор к каждому элементу в списке групп с другим разделителем:
SELECT post.id, post.name, GROUP_CONCAT( CONCAT(tags.id, ';', tags.name) order by tags.name ) AS tags FROM post LEFT JOIN tags ON post.id = tags.post_id;
Теперь вам нужно сделать дополнительный раскол на полуколонах, чтобы получить идентификатор и имя.