Forum Webscript.Ru
Общие => Базы данных => Тема начата: yennifer от 17 Мая 2002, 13:05:42
-
нужно осуществить поиск в бд mysql по одному/нескольким словам.
в запросе для бд есть такой параметр, как LIKE, но он по моему слегка криво работает.
например, когда набираешь fff в инпуте, а этого fff естественно, в помине нету, он все равно умудряется находить документ.
-
1. тебе надо не в ПХП а в базы данных писАть ...
2. LIKE работает нормально. Покажи свой запрос.
-
почему не сюда? ведь можно извратиться ;)
ну я впрочем тут новичек, поэтому распорядков не знаю.
ок, вот запрос
SELECT documents.body, documents.header, documents.id from documents WHERE ((documents.body LIKE \'%ddd%\')) and documents.type<>1 LIMIT 200
например так:)
-
и что оно тебе выводит? :)
documents.body у тебя какого типа?
-
что выводит... нет результатов выводит:)
тип - longtext
-
ниче не понимаю..
ты пару сообщений назад сказала, что оно умудряется находить документы, в которых и в помине нет заданных строчек
а теперь говоришь, что оно ничего не находит?
так оно делает то, что тебе нужно или не делает?
и если не делает, то что именно оно делает не так?
-
ну короче, если набрать aaa то не находит, а если fff - находит:)
и еще - я вписываю в поле для поиска слово (или часть слова), который заведомо есть на странице, а оно его не находит :(
-
так я тебе ничего не скажу ...
можешь скинуть мне дамп таблицы на greta@ensita.net ?
-
не, я все таки тормоз:)
fff находится, потому что в documents.body у меня хтмль-ники. а там есть цвета типа #fff000 :)
но блин! запрос же не умеет обрабатывать что то типа strip_tags, по моему не умеет
вот я и думаю - какой слоновий поиск у меня получится :(
выбрать все значения из бд, где тип документа - текст, потом в цикле брать значение каждого documents.body , стрипать теги, искать нужное (ые) слова, а есть находит - печатать на экран результать
кшмар :(
-
$result=mysql_query("select blabla where field1=".striptags($peremennaya)." order by filed 155");
-
2AlieN: да нет, у yennifer, на сколько я понял, html в базе хранится. Так что striptags тут не поможет. Помогут реги в MySQL, где-то читал, что он их поддерживает, только ни синтаксиса, ни источника вспомнить не могу... :(
Кстати под Win поиск с LIKE по кириллице действительно частенько выдает лишнии строки, но под Linux\'ом все нормально.
-
Помогут реги в MySQL, где-то читал, что он их поддерживает, только ни синтаксиса, ни источника вспомнить не могу...
... WHERE value1 REGEXP value2
... WHERE value1 RLIKE value2
... WHERE value1 NOT REGEXP value2
... WHERE value1 NOT RLIKE value2
REGEXP и RLIKE - синонимы, value1 - то, что нужно с чем-то сравнить, value2 - собственно регулярное выражение.
Например:
SELECT `field` FROM `table` WHERE `field` NOT RLIKE \'^\'