За последние 24 часа нас посетили 20195 программистов и 1715 роботов. Сейчас ищут 1325 программистов ...

При поиске в базе дублируются записи

Тема в разделе "PHP и базы данных", создана пользователем VertuOzz, 13 дек 2011.

  1. VertuOzz

    VertuOzz Активный пользователь

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Доброго времени суток!
    Нужна помощь специалиста. Ищем в базе похожие новости по заголовку
    PHP:
    1. resulty = mysql_query("select * from newser where univer = '" .
    2.         mysql_real_escape_string($name) . "'") or die(mysql_error());
    3. while ($nrow = mysql_fetch_array($resulty)) {
    4.     $val[] = $nrow;
    5.     $incblog = $nrow['blogid'];
    6.     $similar = $nrow['btexty'];
    7.     $similar = mysql_real_escape_string($similar);
    8. }
    9. $results = mysql_query("SELECT * FROM onewse WHERE MATCH (otexty) AGAINST ('".$similar."') and otexty <> '$similar' LIMIT 5") or die(mysql_error());
    10. while ($snrow = mysql_fetch_array($results)) {
    11.     $sval[] = $snrow;
    12. }
    выводим результат:
    PHP:
    1. <div id="ha3">Новости по теме</div>
    2.  
    3. {section name="onewse" loop=$onewse}
    4. {if $rewrite == 1}
    5. <a href="{$onewse[onewse].oniver}-{$onewse[onewse].otexty|urlencode|replace:'/':'-'|replace:'%':'-'}.html"><span class="similar">{$onewse[onewse].otexty|stripslashes}</span></a><br />
    6. {/if}
    7. {if $rewrite == 2}
    8. <a href="news.php?name={$onewse[onewse].oniver}"><span class="similar">{$onewse[onewse].otexty|stripslashes}</span></a><br />
    9. {/if}
    10. {sectionelse}
    11. Похожих новостей нет
    12. {/section}
    результат:
    Новости по теме
    Маккартни возвращается в Россию
    Маккартни возвращается в Россию
    Россию ждет серия авиакатастроф
    Россию ждет серия авиакатастроф
    Россию ждет новый виток кризиса
     
  2. nikitOScher

    nikitOScher Активный пользователь

    С нами с:
    19 дек 2011
    Сообщения:
    38
    Симпатии:
    0
    В запрос добавьте GROUP BY. Помогает избавиться от повторений.