|
|
|
| Добрый день. Есть проблема которую все никак не могу решить. :(
В общем суть в следующем:
Есть функция, которая достает из базы теги, потом по этим тегам достает записи у которых эти теги проставлены. Т.к. функция которая показывает похожие записи вызывает в цикле, который достает теги, то если у этой записи и у которой такие же теги, есть больше 1 похожего тега, то запись выводится несколько раз. Как можно это решить?
Вот сама функция:
while($tagsId = mysql_fetch_array($tagsRes)) {
$countTags = mysql_num_rows($tagsRes); //Смотрим сколько всего тегов
if(!empty($tagsId['Id'])) {
$query = "select tag from tags where Id = '" .$tagsId['tag_id']. "'";
$res = mysql_query($query) or die(mysql_error());
while($tags = mysql_fetch_array($res)) {
.....
}
}
$similar .= getSimilar($tagsId['post_id'], $tagsId['tag_id']);
}
|
В переменную симииляр записываются записи с одинаковыми тегами
А вот сама функция getSimilar:
function getSimilar($blogId, $tagId) {
$q = "SELECT tag.tag_id, tag.post_id, blog.header, blog.Id, CONCAT(blog.day, '.', blog.month, '.', blog.year) as date
FROM post_tag AS tag JOIN blog ON tag.post_id = blog.Id WHERE
tag.tag_id = '".$tagId."' AND blog.Id <> '".$blogId."' order by tag.post_id desc limit 17";
$res = mysql_query($q) or die(mysql_error());
while($similar = mysql_fetch_array($res)) {
....
}
return $back;
}
|
| |
|
|