Поиск по словам в строке?

Статус
В этой теме нельзя размещать новые ответы.

new_forward

Профессор
Регистрация
5 Май 2008
Сообщения
673
Реакции
44
Сделал поиск , только он ищет целую строку целиком, а как сделать чтоб он искал не целую фразу, а слово в строке?:)
 
Ну как сделал так и ищет:) Покажите людям код, кто-нибудь наверняка подскажет что и как сделать
 
Сколько данных на входе поиска задашь - по стольким данным искать будет. Подробнее поясняй, что? как? и, главное, где ищем?
 
Форма:
Код:
<form action="/answer/search.php" method="post">
<input class="v_search" type="text" name="vopros" size="35" value="">
<input type="submit" name="submit" value="Найти">
Таблица :question
Столбец или поле: title

:)
 
Код:
$search = $_POST['vopros'];
	$rsQuestion = $objQuestion->GetList(array(array('title','=',$search),array('langid','=',$language_id)),'',true);
 
В общем так. ТС очень туманно представляет, что происходит и что он хочет. Обьясняю ему.

Это не поиск. Это выборка записи по значению ячейки в таблице бд. Поэтому может использоваться только фраза(значение, которое может быть в ячейке). Тебе же нужен поиск по слову содержащемуся в фразе, которая содержится в ячейке, то есть полнотекстовый поиск.

Для этого используются запросы типа LIKE %word%(что грузно и медленно) либо индексатор, который проходит по базе и формирует у себя индекс по каждому слову. (что быстро, но нужно доп место на диске под индексы)

Обьяснил как мог. То есть тебе надо использовать другой поиск. Вот его и допиши, а этот пусть остается.
 
А примерчика нет про "индексатор"?
 
Вот примерчик из моего проекта :
PHP:
$search = substr(@$_GET['s'],0,65); 
$search = mysql_escape_string (trim($search));
$search = preg_replace("/[^\w\x7F-\xFF\s]/", " ", $search);
$search = trim(preg_replace("/\s(\S{1,2})\s/", " ",ereg_replace(" +", "  "," $search ")));
$search = ereg_replace(" +", " ", $search);
 
$slq = "SELECT * FROM cat where ( cat.body LIKE '%". str_replace(" ", "%' or cat.body LIKE '%", $search)."%' or cat.name LIKE '%". str_replace(" ", "%' or cat.name LIKE '%", $search)."%' or cat.sbody LIKE '%". str_replace(" ", "%' or cat.sbody LIKE '%", $search)."%')  LIMIT 30";
PS. "or" можно менять на "and" и получим выборку "И" или "AБО"
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху