![]() |
Показаны 8 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Поиск в найденом (http://netadmin.ws/forum/showthread.php?threadid=7910)
Поиск в найденом
Помогите пожалуйста, у меня есть следущая задача: я по таблице делаю поиск, и результат вывожу на html страницу, затем мне надо сделать поиск в найденом, это у меня как раз и не получается, причем после поиска в найденом должна быть возможность еще раз искать в найденом и так до тех пор пока не найдешь, то, что надо, т.е. элементарная поисковая система.
К MySQL серверу обращаюсь по средствам PHP. 
__________________
Warlock
для каждого поиска используй новый запрос, можно использовать два варианта:
1. Сохранять ID найденного а потом использовать WHERE IN(...)
2. Манипулировать операторами.
Первый способ мне нравится больше.
__________________
Всегда есть решение.
quote:
Первоначальное сообщение от polo
для каждого поиска используй новый запрос, можно использовать два варианта:
1. Сохранять ID найденного а потом использовать WHERE IN(...)
2. Манипулировать операторами.
Первый способ мне нравится больше.
__________________
Warlock
По твоим словам не понятно понял ты или нет но объясню по подробнее:
1. Делаем первый поиск например по словам 'Mysql'.
SELECT * FROM tbl_name WHERE field_text LIKE 'Mysql'
Допустим было найдено 5 результатов, каждая запись имеет уникальное поле ID. Допустим найденные ID: 10, 12, 16, 25, 89.
Сохраняем эти ID в массиве:
$search_results_ids = array(10, 12, 16, 25, 89); //это так для примера, в реальном случае эти ID будут заносится в массив при обработке результатов.
На странице с результатами в форме поиска делаем скрытое поле
<input type='hidden' name='search_results_ids' value='<php echo serialize($search_results_ids) ?>'>
Выполняем второй поиск например по словам database:
SELECT * FROM tbl_name WHERE id IN(" . explode(',' unserialize($_POST[search_results_ids])) . ") AND field_text LIKE 'database'
Все легко и доступно.
__________________
Всегда есть решение.
Спасибо за ответ. я попробую.
__________________
Warlock
polo, круто, сам учюсь, на заметку запомню, ещё раз спасибо
__________________
Web-Zona
quote:
Первоначальное сообщение от polo
По твоим словам не понятно понял ты или нет но объясню по подробнее:
1. Делаем первый поиск например по словам 'Mysql'.
SELECT * FROM tbl_name WHERE field_text LIKE 'Mysql'
Допустим было найдено 5 результатов, каждая запись имеет уникальное поле ID. Допустим найденные ID: 10, 12, 16, 25, 89.
Сохраняем эти ID в массиве:
$search_results_ids = array(10, 12, 16, 25, 89); //это так для примера, в реальном случае эти ID будут заносится в массив при обработке результатов.
На странице с результатами в форме поиска делаем скрытое поле
<input type='hidden' name='search_results_ids' value='<php echo serialize($search_results_ids) ?>'>
Выполняем второй поиск например по словам database:
SELECT * FROM tbl_name WHERE id IN(" . explode(',' unserialize($_POST[search_results_ids])) . ") AND field_text LIKE 'database'
Все легко и доступно.
__________________
Warlock
Ну можно и так, это уже тестировать и смотреть что быстрее будет.
P.S. Оверквотинг не приветсвуется на форуме.
__________________
Всегда есть решение.
| Формат времени GMT. Текущее время 06:43. | Показаны 8 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.