$_GET['search']
переменная ключевых слов для поиска $reg = str_replace(' ', '.*', $_GET['search');
заменяем пробелы на .*
таблица БД такого вида:
---------------
| id | text|
---------------
делаем запрос к базе по типу: $query = mysql_query('select * from `tablica` where `text` regexp \''.$reg.'\'');
text - ячейка с текстом который ищем
добавляем в массив $re_arr результат выборки из БД. while($result = mysql_fetch_assoc($query )){
$result['text'] = explode('.', $result['text']);
превращаем каждое предложение в значение массива.
$re_arr[$result['id']] = $result['text'];
}
Устал писать, что неясно будет спросишь.......... foreach ($re_arr as $ooo => $ii){
foreach ($ii as $go){
$areg = '/'.$reg.'/i';
if(preg_match($areg, $go)){
echo '<pre>';
print($go);
echo '</pre>';
}
}
}[Ответ]
ilyeah 08:53 26.07.2007
вобщем я чутка изменил а точнее
Сообщение от :
$result['text'] = explode('.', $result['text']);
на
Сообщение от :
$result['text'] = explode('. ', $result['text']);
а то у меня ссылки были и названия файлов в тексте
вобщем вычленяет предложение с искомым словом
[Ответ]
Userator 10:17 26.07.2007
Сообщение от ilyeah:
не понял что что есть regexp \''.$reg.'\'' - может ачипятка
не, не опечатка.
значение оператора regexp должно быть в кавычках однарных или двойных,
потипу regexp "bla-bla" или regexp 'bla-bla' я больше люблю одинарные поэтому их и вписал, но так как весь запрос закрыт в одинарные кавычки, то те которые используются у regexp пришлось заслешыть \' дабы PHP не ругался и не принимал ету кавычку как кавычку.
а дальше мы вклиниваем переменную $reg в строку запроса таким образом: '.$reg.'
в результате запрос к базе пойдёт вот таким видом: select * from `tablica` where `text` regexp 'тут слова'
можно ещё
такой вариант
$query = mysql_query('select * from `tablica` where `text` regexp "'.$reg.'"');
, где жирным выделены двойные кавычки.
тогда запрос пойдёт вот такой: select * from `tablica` where `text` regexp "тут слова"[Ответ]
получаеться что порядок слов в запросе при выводе имеет значение это не есть хорошо
вобще спасибо за идею: "разбивать на предложения а потом искать"
у меня запрос на поиск более сложный с релевантностью седня вечером попробую твой метод под свои нужды прикрутить
[Ответ]
Сообщение от :
красиво это так что если по запросу найдено сто страниц с тескто выводим
на страницу десять резулятатов не целиком а только куски текста где есть слова из запроса