Организация поиска

MPAK

Guest
Организация поиска

На странице есть textarea для ввода запроса на поиск. Что именно ищем (телефон, имя и т.д.) не указывается.
Вопрос: Как организовать поиск в базе по всем её полям искомого?
 

Paxan

Новичёк
Самый дубовый способ ;):
[SQL]
SELECT * FROM table WHERE CONCAT(field1,field2,field3...) LIKE "%текст для поиска%"
[/SQL]
 

neko

tеam neko
Paxan
интересно как ты потом собираешся определять где именно нашел
 

Paxan

Новичёк
neko, хороший вопрос :) Если ведётся поиск в пределах одной таблицы, то проблем нет. Я как понял, что ему нужен именно в пределах одной таблицы. Если был не прав, то извеняйте.
 

MPAK

Guest
Именно по одной. Спасибо, попробую.
Большое спасибо. Действительно работает. Осталось только вывести результат :) Поправка: работает только когда через Far к мускулу подключаюсь и там запрос ввожу. Из РНРшного кода он почему-то результатов не даёт. И ошибок не пишет.
И вопрос вдогонку: А как подсветить найденные слова в полученной таблице? Ну, например, красным. Чтобы искомое сочетание было выделено цветом, а остальное по умолчанию.
 

Dallas

Guest
MPAK, при выводе строки заменяй в ней искомую строку на форматированную строку, типа:
$str_out = str_replace($str_find, "<b>".$str_find."</b>", $str_out);
 

MPAK

Guest
Всё оказалось проще, чем казалось! Я использовал следующую конструкцию:
PHP:
SELECT str1, str2, ..., strN FROM my_table WHERE field1 LIKE '%$search%' OR field2 LIKE '%$search%' OR ... fieldN LIKE '%$search%'
Пример привел для таких же как я, чтобы не мучались :)
 

ForJest

- свежая кровь
MPAK
А теперь протестируй своё замечательное решение на таблице из 10000 записей :)
 

MPAK

Guest
Новая проблема:
Моё "замечательное решение" выдает все записи, где встречается любой из символов, которые есть в запросе. Есть ли способ сделать, чтобы он выдал только те поля, где есть именно искомая последовательность?
И ещё. Подскажите способ поэлегантнее плиз.
 
Сверху