Сложная проблема с простым поиском!

Wasap

Guest
Сложная проблема с простым поиском!


Есть таблица "article" в ней поля author,titlearticle,textarticle
-надо сделать поиск по заданному слову/сочетанию слов.
-поиск должен вестись в каждом из полей
-в результате нужно выбрать кусок где было совпадение вывести и выделить совпавшее


Не могу придумать как определить при поиске в каком из полей было совпадение
т.е. например запись нашлась а в каком поле взять нужный кусок(с совпавшим словом) чтобы вывести?
И может же быть такой случай если совпало в заголовке и тексте одновременно...
Может есть запрос в котором можно определить где произошло совпадение?

Есть идея например пробести поиск во всех записях сначала по одному полю потом по следующему и т.д.(но это не самый лучший вариант)

Может есть какойто более простой и оптимальный способ выполнить поставленную задачу на php+MySQ??
 

akxxiv

Новичок
Просто ищешь, затем пропускаешь все что нашел через ф-ю, вкоторая присматривает текст в поисках искомого слова, если находит, вырезает соответствующий кусок и выделяет слово.
 

Wasap

Guest
Не я не это отел узнать
вот например:

PHP:
$query="SELECT titlearticle,textarticle  FROM  article WHERE 
and ((titlearticle LIKE  \"%".$what."%\") OR (textarticle LIKE  \"%".$what."%\"))";
$result=mysql_query($query);
$rows=mysql_num_rows($result);

как мне понять в каком поле было совпадение в $row[titlearticle] или $row[titlearticle]?

и из содержимого какого поля нужно получить кусок с выделеным совпадением.

Вариант проверить рег.выр. во всех, "выдрать" нужную часть с совпадением (если совпадение есть) и выделить его,если не найдено вывести как есть.
Ведь если запись удовлетворяет запросу то в каком то из полей всё же это совпадение есть.

В результате выделится слово либо в названии либо в тексте.
 

Wasap

Guest
развиваю идею вроде на правильном пути
 
Сверху