Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не выводить одинаковые записи
 
 автор: Aidaho   (07.12.2011 в 08:38)   письмо автору
 
 

Добрый день. Есть проблема которую все никак не могу решить. :(
В общем суть в следующем:
Есть функция, которая достает из базы теги, потом по этим тегам достает записи у которых эти теги проставлены. Т.к. функция которая показывает похожие записи вызывает в цикле, который достает теги, то если у этой записи и у которой такие же теги, есть больше 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;
    }

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования