Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Реализация поиска по сайту.
Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011
Помог: 1 раз(а)
Всем, привет!
Подскажите, пожалуйста, где можно почитать подробное описание реализации поиска по сайту с использованием MySQL. Просто не хотелось бы пользоваться готовыми скриптами, не вникая в суть.
Спасибо, буду рада помощи.
illy
Отправлено: 10 Февраля, 2012 - 10:36:21
Участник
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
В гугле а лучше в нигме
----- Всё гениальное - просто
И ещё проще, если ты - индиго
snikers987
Отправлено: 10 Февраля, 2012 - 10:42:54
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
$q="SELECT `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id` FROM `table_name` WHERE `text` LIKE '%$query%' OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%' OR `meta_d` LIKE '%$query%'";
$q="SELECT `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id` FROM `table_name` WHERE `text` LIKE '%$query%' OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%' OR `meta_d` LIKE '%$query%'";
Я так поняла, таблица table_name, с колонками `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id`, а вот что такое после WHERE text, title, meta_k, meta_d???
Прошу помощи разобраться новичку!
PATCH
Отправлено: 13 Февраля, 2012 - 12:24:58
Частый посетитель
Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
$q ="SELECT `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id` FROM `table_name` WHERE `text` LIKE '%$query%' OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%' OR `meta_d` LIKE '%$query%'";
$q ="вытащить поля `page_id`, `title`, `desc`, `title_link`, `category`, `uniq_id` из таблицы `table_name` где поле текст `text` равна вхождению '%$query%' или где поле текст `title`равна вхождению '%$query%' "; и т.д
Цитата:
LIKE применим только к полям типа CHAR или VARCHAR, с которыми он используется чтобы находить подстроки. Т.е. он ищет поле символа чтобы видеть, совпадает ли с условием часть его строки. В качестве условия он использует групповые символы(wildkards) - специальные символы которые могут соответствовать чему-нибудь. Имеются два типа групповых символов используемых с LIKE:
* символ подчеркивания ( _ ) замещает любой одиночный символ. Например, 'b_t' будет соответствовать словам 'bat' или 'bit', но не будет соответствовать 'brat'.
* знак процента (%) замещает последовательность любого числа символов (включая символы нуля). Например '%p%t' будет соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.
Давайте найдем всех заказчиков чьи имена начинаются с G ( вывод показывается в Рисунке 5.7 ):
Каким образом можно дополнить данный код, что бы он выводил ссылки на искомую информацию и при нажатии на данную ссылку, мы переходили на страницу с искомой информацией.
Буду рада помощи
Zuldek
Отправлено: 15 Февраля, 2012 - 15:13:41
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Это зависит от того каким образом у вас формируются ссылки на статьи.
У вас в базе есть id title и text.
Если попасть на статью можно по адресу вида site.ru/articles.php?id=100
то тогда, измените код вывода результатов поиска примерно так:
если выводите в результатах поиска только заголовки с ссылками на страницы со статьями то извлечение текста статьи и запись его в переменную $text не имеет смысла и просто тратит память.
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
alena_pl Ваш запрос ищет только по полю title
И зачем вам такие огороды с do while?
Смысл кода после цикла вообще не понятен..
Также хочу отметить что результаты такого поиска будут не ахти, к примеру по запросу "Ложка" не найдет "Ложки" и т.п.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.