Vladex
Новичок
Как вывести облако тегов
Вот код вывод облака тегов. У меня оно сделано по такому принципу: В базе три таблицы 1. Таблица со статьями - posts 2. Таблица с набором тегов - tags 3. И таблица для связи тегов со статьями - posts_tags Главное в коде это построить запрос, я с помощью поисков по форумам нашел как с поиощью slq можно объединить две таблицы,но проблема нашлась там где ее совсем не ждут
Код работает, выводит текст так как надо, с различным шрифтом в зависимости от количества тега в базе, но ... как сделать вывод этого текста ССЫЛКАМИ, и чтобы ссылка могла вызвать при нажатии на ТЕГ из базы posts ТЕКСТ?
<?php // rows $sql = query('SELECT tags.tag, COUNT(posts_tags.tag_id) AS posts_count FROM posts_tags LEFT JOIN tags ON posts_tags.tag_id=tags.id GROUP BY tags.id'); $row = get_array($sql); if ($row === FALSE) { echo "Данные не найдены"; } else { $min = $row[1]['posts_count']; $max = $row[1]['posts_count']; for ($i = 1; $i < count($row); $i++) { if ($row[$i]['posts_count'] > $max) { $max = $row[$i]['posts_count']; } if ($row[$i]['posts_count'] < $min) { $min = $row[$i]['posts_count']; } } $minSize = 70; $maxSize = 150; foreach ($row as $item) { if ($min == $max) { $fontSize = round(($maxSize - $minSize) / 2 + $minSize); } else { $fontSize = round((($item['posts_count'] - $min)/($max - $min)) * ($maxSize - $minSize) + $minSize); } $output_tag .= "<span style=\"font-size:".$fontSize."%\">".$item['tag']." (".$item['posts_count'].") </span>"; } } echo $output_tag; ?>
Вот код вывод облака тегов. У меня оно сделано по такому принципу: В базе три таблицы 1. Таблица со статьями - posts 2. Таблица с набором тегов - tags 3. И таблица для связи тегов со статьями - posts_tags Главное в коде это построить запрос, я с помощью поисков по форумам нашел как с поиощью slq можно объединить две таблицы,но проблема нашлась там где ее совсем не ждут
Код работает, выводит текст так как надо, с различным шрифтом в зависимости от количества тега в базе, но ... как сделать вывод этого текста ССЫЛКАМИ, и чтобы ссылка могла вызвать при нажатии на ТЕГ из базы posts ТЕКСТ? <?php // rows $sql = query('SELECT tags.tag, COUNT(posts_tags.tag_id) AS posts_count FROM posts_tags LEFT JOIN tags ON posts_tags.tag_id=tags.id GROUP BY tags.id'); $row = get_array($sql); if ($row === FALSE) { echo "Данные не найдены"; } else { $min = $row[1]['posts_count']; $max = $row[1]['posts_count']; for ($i = 1; $i < count($row); $i++) { if ($row[$i]['posts_count'] > $max) { $max = $row[$i]['posts_count']; } if ($row[$i]['posts_count'] < $min) { $min = $row[$i]['posts_count']; } } $minSize = 70; $maxSize = 150; foreach ($row as $item) { if ($min == $max) { $fontSize = round(($maxSize - $minSize) / 2 + $minSize); } else { $fontSize = round((($item['posts_count'] - $min)/($max - $min)) * ($maxSize - $minSize) + $minSize); } $output_tag .= "<span style=\"font-size:".$fontSize."%\">".$item['tag']." (".$item['posts_count'].") </span>"; } } echo $output_tag; ?>
