|
|
|
| Перечитал вроде все статьи по поисковой строке, но так и не могу у себя её сделать.
Как организовать поиск в файле, понятно. Как определенное значение найти в базе данных - тоже.
А вот как вставить в команду Select * from tab WHERE (вот тут перепробовал все) слова для поиска? И тем более с логикой ИЛИ(слова разделил, а дальше как). Как связать PREG_MATCH(), FORECH() c этим запросом? Помогите, или дайте ссылку плз. И еще. Какая функция для массивов наиболее подойдет для удаления слов<=3 букв. | |
|
|
|
|
|
|
|
для: Killer
(27.11.2005 в 11:16)
| | Если кто мучается тамим же вопросом, то на часть вопроса ответ нашел вроде:
Where LIKE '%word%' | |
|
|
|
|
|
|
|
|
для: cheops
(27.11.2005 в 13:54)
| | Спасибо, cheops, все перечитал, но к сожалению так и не нашел ответа на главный для себя вопрос: "Как организовать строку запроса при логике "ИЛИ" при 3,4,5,....100:-))) слов?
Больше понравился FULLTEXT.
А как у вас организован запрос при "ИЛИ"?
Вот как у меня находится массив с ключевыми словами.
$line_request = substr($_POST['line_request'],0,1024);
$line_request = htmlspecialchars(stripslashes($line_request));
$array_txt=$line_reguest;
if ($logic='or') {$array_txt = preg_split("/[,\.\s]/", $line_request)};
$word="\%.$line_request.\%";
//Вот это понятно как сделать (с логикой И)
$query = "SELECT * FROM message WHERE hide = 'show'&& mess LIKE $word; // Тут могут быть неточности, но суть в том что это логика "И"
$query = "SELECT * FROM message WHERE MATCH hide AGAINST 'show' MATCH mess AGAINST $line_request;
|
А куда foreche "запихать"? | |
|
|
|
|
|
|
|
для: Killer
(27.11.2005 в 17:40)
| | Сделал FULLTEXT
Понял, что тут preg_split() делать не надо.
Но почему то у меня не работает запрос через переменную.
$query = "SELECT * FROM message WHERE hide='show'&& MATCH (msg) AGAINST ('запрос') - все работает
<td><p class=poisk><b> Введите слова для поиска</b></td>
<td><input type=text name=line_request maxlength=30 size=30 ></td> (ввел 'запрос')
...
$line_request = substr($_POST['line_request'],0,1024);
$line_request = htmlspecialchars(stripslashes($line_request));
$query = "SELECT * FROM message WHERE hide='show'&& MATCH (msg) AGAINST ($line_request) - запрос равен нулю??? | |
|
|
|
|
|
|
|
для: Killer
(27.11.2005 в 19:30)
| | Кавычки всё-равно нужны - так как это не PHP, а MySQL - Т.е. ваш запрос должен выглядеть так
<?php
$query = "SELECT * FROM message WHERE hide='show'&& MATCH (msg) AGAINST ('$line_request')";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(27.11.2005 в 20:25)
| | Спасибо, получилось.
Еще тогда вопрос, а что нужно добавить в запрос чтоб выполнялось "И"? А то были проблемы с ИЛИ, а теперь наоборот получается. В инструкции смотрел, там + надо куда то ставить чтобы слово присутствовало обязательно, а если у меня переменная?
И не в тему. Не знаете, почему на мыло не приходят уведомления об обновлении темы? (Про этот форум) Я галочку поставил. | |
|
|
|
|
|
|
|
для: Killer
(27.11.2005 в 21:57)
| | 1) Вы хотите работать в логическом режиме?
2) Уведомления отключены из-за нагрузки на почтовый сервер, для получения уведомлений следует пользоваться RSS http://www.softtime.ru/forum/xml.php | |
|
|
|
|
|
|
|
для: cheops
(28.11.2005 в 13:49)
| | >1) Вы хотите работать в логическом режиме?
>
Да. А вы что, без "логики" работаете?
2) Уведомления отключены из-за нагрузки на почтовый сервер, для получения уведомлений следует пользоваться RSS http://www.softtime.ru/forum/xml.php
Там пустая страница выходит | |
|
|
|
|
|
|
|
для: Killer
(28.11.2005 в 17:30)
| | 1) Нет, имеется ввиду IN BOOLEAN MODE - только там доступны модификаторы.
2) Internet Explorer не поддерживает RRS, это пока реализовано в продвинутых браузерах таких браузер как Opera. По ссылке XML-файл - поэтому его и не видно. | |
|
|
|
|
|
|
|
для: cheops
(28.11.2005 в 20:09)
| | >1) Нет, имеется ввиду IN BOOLEAN MODE - только там доступны
>модификаторы.
Мне нужно переходить на BOOLEAN в MySQL?
Или поясните подробнее. | |
|
|
|
|