Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/39: Рейтинг темы: голосов - 39, средняя оценка - 4.54
Hacker_
11 / 11 / 5
Регистрация: 10.09.2009
Сообщений: 261
1

Как сделать поиск по сайту?

20.07.2010, 11:38. Просмотров 7131. Ответов 8
Метки нет (Все метки)

Всем привет.
Мне нужно сделать поиск по сайту.
Есть таблица с категориями товаров - cms_uc_cats, в столбще title находится название, по нему надо сделать поиск. т.е. человек вводит название к примеру "бисер", Я должен найти в столбце title поле с названием "бисер", и вывести ссылку на этот каталог. Ну вывести ссылку это уже другая история, сейчас мне надо сделать просто поиск.
Это приблизительно будет выглядеть так:
PHP
1
2
3
4
5
  $rs_rows = mysql_query("SELECT * FROM cms_uc_cats WHERE title = $_REQUEST[query]");
  while ($row = $inDB->fetch_assoc($rs_rows))
   {
    echo '<a target= "_self" class="" href="/catalog/23/'.$row['id'].'" style="font-size:16px;font-family: Arial;" >'.$row['title'].'</a><br>';
   };
$_REQUEST[query] - это поле введенное пользователем.

Во первых, код компилируется, но не рабоает, почему?
Если написать так:
PHP
1
2
3
4
5
6
echo $_REQUEST['query'];
  $rs_rows = mysql_query("SELECT * FROM cms_uc_cats WHERE title = $_REQUEST[query]");
  while ($row = $inDB->fetch_assoc($rs_rows))
   {
echo "bla";
   };
Значение $_REQUEST['query'] выводится т.е. выводится к примеру "Бисер", а слово bla нет, хотя Я точно знаю что в этой таблице в поле title есть "Бисер".

Во вторых, мне нужно сделать поиск без учета регистра, т.е. есть есть поле "Бисер", а пользователь вводит "бисер", то это поле должно находится. Скажите, мускл ищет с учетом ригестра или нет, если да, то как сделать что бы искал без учета.

В третих, нужно сделать что бы поиск проводился по части слова, т.е. если пользователь вводит "бис", то должно находиться поле "Бисер". Возможно ли такое сделать? и как?

В четвертых, нужно сделать поиск "по любому слову", "по всем словам", и "по всей фразе", т.е. если выбрано "по любому слову" пользователь вводит "бисер бусины винил" должно выводиться повсем введенным словам.
Если выбрано "по всем словам", то должны находиться катенории в которых указаны все слова заданные пользователем. т.е. если задать "бисер средний" должны выводиться "Бисер средний", но не будут выводиться "Бисер мелкий" и "Бисер крупный".
Если выбрано "по всей фразе", то должны находиться катенории в которых указаны введенная фраза, ну как это сделть понятно.

Скажите что из этого вообще реально сделать, а что нет?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2010, 11:38
Ответы с готовыми решениями:

Сделать поиск по сайту
Вот такая проблема: делаю поиск по сайту, сделал форму и исполнительный файл. Вот часть: 1....

Как сделать поиск по сайту с базой данных на xml
Здравствуйте. Есть сайт, хотел обновить на нем поиск. Сейчас он работает таким образом, что при...

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE `marka` LIKE '%&quot; ....

Как создать поиск по сайту?
Как создать поиск по сайту?

Как реализуется поиск по сайту?
Как реализуется поиск по сайту? Через базы данных? Если да, то как справляются с нагрузкой? Или она...

8
Onehp
1 / 1 / 0
Регистрация: 20.07.2010
Сообщений: 15
20.07.2010, 15:09 2
PHP
1
("SELECT * FROM cms_uc_cats WHERE MATCH(title) AGAINST('$search')")
Конечно сначала нужно создать переменную '$search' и потом только подставлять её
1
lunata
0 / 0 / 0
Регистрация: 25.07.2010
Сообщений: 4
25.07.2010, 19:35 3
Привет всем.У меня возник вопрос-как сделать поиск по сайту на php, когда вся информация хранится в нескольких таблицах БД.
например
SQL
1
SELECT * FROM     таблица 1    WHERE MATCH(title) AGAINST('$search')
а нужно использовать таблицы2,3,...

Заранее спасибо.
0
Nazz
WEB-developer
897 / 728 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
25.07.2010, 19:57 4
а может попробувать
SQL
1
SELECT * FROM таблица 1, таблица 2... WHERE MATCH(title) AGAINST('$search')
0
25.07.2010, 19:57
lunata
0 / 0 / 0
Регистрация: 25.07.2010
Сообщений: 4
25.07.2010, 21:30 5
Так уже пробовала, но не получается
0
RosenR@t
136 / 136 / 7
Регистрация: 07.07.2010
Сообщений: 771
25.07.2010, 21:53 6
Посмотри тег
HTML5
1
echo
. Ошибка видмо в синтаксисе,
завтра изучу и дам дельный совет!

Добавлено через 3 минуты
Почитай книги по запросам sql. Советую Мартин Грубер "Понимание sql"
0
arvitaly
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 07:24 7
union
0
lunata
0 / 0 / 0
Регистрация: 25.07.2010
Сообщений: 4
26.07.2010, 13:56 8
Цитата Сообщение от arvitaly Посмотреть сообщение
union
С помощью UNION не все получается
Т.e(конкретно в моем случае)

PHP
1
$result=mysql_query("SELECT * FROM noutbuki WHERE MATCH(title) AGAINST('$search') UNION SELECT * FROM netbuki WHERE MATCH(title) AGAINST('$search')",$db);
Ноутбуки находит, а нетбуки находит вместе с ноутбуками где-то сзади
0
arvitaly
Благотворец
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 21:59 9
PHP
1
$result=mysql_query("select * from (SELECT * FROM noutbuki UNION SELECT * FROM netbuki) as alltable WHERE MATCH(alltable.title) AGAINST('$search')",$db);
а вообще зачем такая неправильная структура БД, если таблицы полностью совпадают по полям - правильнее объединить их и задать поле "рубрика"
0
26.07.2010, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2010, 21:59

Организовать поиск по сайту PHP&MySQL. Как просклонять слово?
Пример: При запросе &quot;медведь&quot;, пользователю надо выдать &quot;медведи&quot;,...

Как сделать функцию "Обязательный клик по сайту рекламодателя"?
Всем привет. Проблема вот в чем: В одном буксе видел такую функцию в серфинге, как доп клики на...

Поиск по сайту
Доброй ночи! При создании сайта столкнулся с проблемой. Подскажите, как сделать поиск по сайту?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru