За последние 24 часа нас посетили 20202 программиста и 1714 роботов. Сейчас ищут 1516 программистов ...

Дублируется результат поиска в MySQL

Тема в разделе "PHP для новичков", создана пользователем VertuOzz, 14 дек 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. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    [sql]GROUP BY `onewse`[/sql]
    вообще зря что имя таблицы совпадает с именем одного из полей
     
  3. VertuOzz

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

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Спасибо, только теперь выдается только один результат вместо 5. А где совпадение? Имя таблицы 'onewse', имя поля 'otexty'.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    значит GROUP BY `otexty`
     
  5. VertuOzz

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

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Только все равно выводиться лишь один результат...
     
  6. VertuOzz

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

    С нами с:
    17 июн 2011
    Сообщения:
    28
    Симпатии:
    0
    Все, решено. Благодарю за совет!