0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 26
1

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

13.11.2009, 21:35. Показов 9871. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот такая проблема:
делаю поиск по сайту, сделал форму и исполнительный файл. Вот часть:

1. $result = mysql_query("SELECT id,title,description, date, author, mini_img, view FROM data WHERE MATCH(text) AGAINST('$search')",$db);
1.Поиск в "text" работает, а если хочу прописать чтоб искало в "description" - ошибка! Что не так?

2. Я хотел еще сделать вибор где искать(в тексте, в оглавлении,..). Делаю через if. Правильно?

P.S. Может кто-то будет смеятся с вопроса, но я учусь, и хочу научится делать сам
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2009, 21:35
Ответы с готовыми решениями:

Как сделать поиск по сайту?
Всем привет. Мне нужно сделать поиск по сайту. Есть таблица с категориями товаров - cms_uc_cats,...

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

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

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

8
106 / 16 / 4
Регистрация: 13.04.2009
Сообщений: 104
13.11.2009, 22:13 2
Поиск лучше конечно делать через LIKE, если это конечно не какой то особенный поиск по сайту )

PHP
1
$result = mysql_query("SELECT id,title,description, date, author, mini_img, view FROM data WHERE text LIKE '%$result%'",$db) or die(mysql_error());
Ну и так же с описание попробовать.
1
11 / 9 / 0
Регистрация: 10.11.2009
Сообщений: 99
13.11.2009, 22:27 3
Цитата Сообщение от Tol82 Посмотреть сообщение
2. Я хотел еще сделать вибор где искать(в тексте, в оглавлении,..). Делаю через if. Правильно?
Можно делать так, в первую очередь выводить оглавление + текст, потом - оглавление, потом - текст.

Ну, и, конечно же, если объемы солидные - делайте таблицу с индексами слов и отдельную - уже с индексом самого текста.
0
356 / 315 / 48
Регистрация: 21.04.2009
Сообщений: 574
14.11.2009, 12:36 4
Цитата Сообщение от Tol82 Посмотреть сообщение
$result = mysql_query("SELECT id,title,description, date, author, mini_img, view FROM data WHERE MATCH(text) AGAINST('$search')",$db);
похоже на строку поиска из видеурока Е.Попова по созданию поиска по блогу
0
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 26
14.11.2009, 20:13  [ТС] 5
Да, я учусь по відеоуроках Попова. Вы тоже, tyz, их проходили?
0
356 / 315 / 48
Регистрация: 21.04.2009
Сообщений: 574
15.11.2009, 16:57 6
Цитата Сообщение от Tol82 Посмотреть сообщение
Вы тоже, tyz, их проходили?
кое гдэ находил отвельные видеоуроки, их и смотрел, а что касаеться создания блога, так в нем Евгений не все проработал, есть например лазейки, как пройти в закрытый раздел без ввода пароля ....... и еще много.
Tol82, если хочеш сделать удалена ссылка используя "исходники" Попова, переделывай их!!!
0
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
15.11.2009, 22:36 7
Цитата Сообщение от MaskiLov Посмотреть сообщение
Ну, и, конечно же, если объемы солидные - делайте таблицу с индексами слов и отдельную - уже с индексом самого текста.
а как это реализовать?
0
DevilChe
21.11.2009, 22:14 8
поиск по базе MySQL? если да, то простой поиск сделать очень просто

делаешь форму, юзер вводит туда слово для поиска. Составляешь запрос обычный (можно использовать LIKE, лучше искать будет) и выводишь результат/ вот полезный удалена ссылка

PHP
1
$sql = "SELECT [нужные_поля] FROM [таблица] WHERE [поле_для_поиска] LIKE '[что ищем]'";
В LIKE:
% - соответствует любому количеству символов, даже их отсутствию
_ - соответствует ровно одному символу

Предупреждение: Сравниваемые значения не зависят от регистра. Чтобы явно указать, что мы хотим регистрозависимый результат, нужно указать ключевое слово BINARY

Для примера у нас есть таблица новостей, и мы хотим в тексте найти вхождение фразы:
PHP
1
2
$sql = "SELECT * FROM news WHERE text LIKE '%мой текст%'"; // нечеткое вхождение фразы "мой текст"
$sql = "SELECT * FROM news WHERE text LIKE 'мой текст'"; // четкое вхождение фразы "мой текст"
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
22.11.2009, 00:50 9
Со всем сказанным согласен, но поиск - это очень не просто... Попробую объяснить почему, дабы автор не обольщался простотой SQL-запросов. Допустим есть каталог книг. Среди пары сотен, а может тысяч, есть книга, например, "Теория и технология программирования", а теперь представим, что пользователь допустил одну опечатку, когда набирал текст "Теория и тихнология программирования", или любую другую. И что он найдёт, если используется SQL-функция LIKE в том, виде, в котором она представлена выше? Ответ очевиден - ничего, ибо не произойдёт ТОЧНОГО совпадения. Так вот, дабы такого не происходило, тут нужно писать фактически задатки искусственного интеллекта. То есть, если запрос многословный, то нужно искать наличие каждого слова (включая однокоренные, то есть, в случае общения с машиной (компьютером), наличие в слове 2,3,4 и т.д (не более, чем в искомом слове) букв следующих друг за другом в искомом порядке) и так по каждому из слов, затем слова похожие на написанные (первая и последняя буква в слове (этот момент можно усложнять увеличивая количество символов с начала и конца к середине), а между ними "что угодно" - %), затем различные сочетания слов. Затем всё это обработать и только после этого выводить какой-то результат поиска. Только в этом случае получится более-менее вменяемый поиск. ИМХО. Сам на этом обжёгся. Удачи в этом не простом начинании. Так что одним LIKE тут не обойдёшься, если хочешь получить на самом деле нормальный качественный результат. А с полями таблицы, я думаю разберёшься, если немного подумаешь.
1
22.11.2009, 00:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2009, 00:50
Помогаю со студенческими работами здесь

Поиск по сайту
Здрасте всем! Сделал сайт, сделал на нем форму поиска...А как сделать так, чтобы эта форма...

Поиск по сайту
Доброе время суток Уважаемые форумчане! я тут решил сделать поиск по сайту и наткнулся на...

Поиск по сайту
<?php require_once 'config.php'; session_start(); if( isset($_POST) ){ $search =...

Поиск по сайту
Добрый вечер, подскажите пожалуйста, сегодня пытаюсь весь вечер разобраться. Делал поиск по сайту,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru