Поставил себе задачку по php и mysql вывести список новостей и название категорий, к которым относятся эти самые новости.
Новость может принадлежать к нескольким категориям, к одной категории или вовсе без категории.
В БД есть три таблицы:
Делаю запрос:
SELECT n.*, l.*, c.*
FROM news n
LEFT JOIN link l ON (l.news_id = n.id)
LEFT JOIN category c ON (c.id = l.cat_id)
ORDER BY n.id ASC
И получаю результат:
id |title | news_id | cat_id | id | name | url |
1 | Первая новость | 1 | 1 | 1 | Политика | politic |
1 | Первая новость | 1 | 2 | 2 | Криминал | criminal |
1 | Первая новость | 1 | 3 | 3 | Общество | obshes |
2 | Вторая новость | | | | | |
3 | Третья новость | 3 | 1 | 1 | Политика | politic |
4 | Четвертая новость | 4 | 2 | 2 | Криминал | criminal |
4 | Четвертая новость | 4 | 4 | 4 | Новости мира | news-world |
5 | Пятая новость | | | | | |
Как теперь в php обработать и вывести новости, допустим в таком формате:
Первая новость (Политика, Криминал, Общество)
Вторая новость ()
Третья категория (Политика) и т.д.
Постройте запрос с использованием GROUP_CONCAT:
SELECT n.title,
GROUP_CONCAT(c.name SEPARATOR ', ') as cname,
GROUP_CONCAT(c.url SEPARATOR ', ') as curl
FROM news n
LEFT JOIN link l ON (l.news_id = n.id)
LEFT JOIN category c ON (c.id = l.cat_id)
GROUP BY n.title
ORDER BY n.id ASC
Вывести результат в php можно например так:
$full_list = mysql_query("
SELECT n.title as title,
GROUP_CONCAT(c.name SEPARATOR ', ') as cname,
GROUP_CONCAT(c.url SEPARATOR ', ') as curl
FROM news n
LEFT JOIN link l ON (l.news_id = n.id)
LEFT JOIN category c ON (c.id = l.cat_id)
GROUP BY n.title
ORDER BY n.id ASC
");
echo '<ul>';
while($entity = mysql_fetch_array($full_list))
{
echo '<li>'.$entity["title"].'('.$entity["cname"].')</li>';
}
echo '</ul>';
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
У меня есть таблица на 30500 записейВ ней находятся города, районы, и всякие населенные пункты
Подскажите как прописать ссылку в htaccessне переключается постраничный вывод из файла , в браузере выводится ссылка, а на странице не переключается
Начинаю, изучать php и хочу сделать логирование ошибокПытаюсь разобрать функцию debug_backtrace(), и не могу понять из-за чего он не хочет брать [0] массив...
Мне понадобилось найти функцию, которая отображает подсказки в TextBox в виде списка подходящих строк (те