Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Базы данных » MySQL » Поиск в найденом
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Warlock
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 4
Статус: Warlock в оф-лайне
Unhappy Поиск в найденом [сообщение #61346]

Помогите пожалуйста, у меня есть следущая задача: я по таблице делаю поиск, и результат вывожу на html страницу, затем мне надо сделать поиск в найденом, это у меня как раз и не получается, причем после поиска в найденом должна быть возможность еще раз искать в найденом и так до тех пор пока не найдешь, то, что надо, т.е. элементарная поисковая система.
К MySQL серверу обращаюсь по средствам PHP.

__________________
Warlock

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 20-02-2004 18:29
Нажмите сюда для просмотра профайла Warlock Отправить Персональное сообщение Warlock Найти сообщения от Warlock Добавить Warlock в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #61347]

для каждого поиска используй новый запрос, можно использовать два варианта:
1. Сохранять ID найденного а потом использовать WHERE IN(...)
2. Манипулировать операторами.

Первый способ мне нравится больше.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 20-02-2004 18:37
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Warlock
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 4
Статус: Warlock в оф-лайне
[сообщение #61370]

quote:
Первоначальное сообщение от polo
для каждого поиска используй новый запрос, можно использовать два варианта:
1. Сохранять ID найденного а потом использовать WHERE IN(...)
2. Манипулировать операторами.

Первый способ мне нравится больше.



Т.е. если запрос выполняется $result = mysql_query($query);
далее мы делаем запрос WHERE IN $result Sname LIKE '$keyword'
я правильно понял?

__________________
Warlock

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 21-02-2004 07:46
Нажмите сюда для просмотра профайла Warlock Отправить Персональное сообщение Warlock Найти сообщения от Warlock Добавить Warlock в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #61392]

По твоим словам не понятно понял ты или нет но объясню по подробнее:
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'
Все легко и доступно.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 21-02-2004 12:07
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Warlock
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 4
Статус: Warlock в оф-лайне
[сообщение #61413]

Спасибо за ответ. я попробую.

__________________
Warlock

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 21-02-2004 19:03
Нажмите сюда для просмотра профайла Warlock Отправить Персональное сообщение Warlock Найти сообщения от Warlock Добавить Warlock в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
[сообщение #61417]

polo, круто, сам учюсь, на заметку запомню, ещё раз спасибо

__________________
**censored**

Сообщение было отредактировано ANDRY 21-02-2004 в 20:09

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 21-02-2004 20:06
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Warlock
Участник

Зарегистрирован: Feb 2004
Место проживания:
Публикаций: 4
Статус: Warlock в оф-лайне
[сообщение #61580]

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'
Все легко и доступно.



Но такой способ не совсем преемлем если результатом первого запроса является несколько тысяч записей, подобная передача данных сильно раздует html документ, а что если в качестве параметров передавать слова которые использовались в запросах к примеру стопт|питание, потом это разбивать explode и выполнять два запроса первый из которых будет искать ID записей по первому слову, а второй уже будет выполнять поиск по второму слову и ID полученным по первому запросу. Я полагаю это сократит время загрузки страницы.

__________________
Warlock

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-02-2004 19:53
Нажмите сюда для просмотра профайла Warlock Отправить Персональное сообщение Warlock Найти сообщения от Warlock Добавить Warlock в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #61621]

Ну можно и так, это уже тестировать и смотреть что быстрее будет.
P.S. Оверквотинг не приветсвуется на форуме.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-02-2004 13:43
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 08:29.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01115108 seconds (44.44% PHP - 55.56% MySQL) with 21 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.