Forum Webscript.Ru
Общие => Базы данных => Тема начата: scasic от 11 Июля 2002, 11:02:38
-
не знаю куда этот топик поместить лучше :)
надо осуществить поиск заданного слова по всей базе данных, при это не задавая имен таблиц и стобцов
их желательно получить программным путем (php)
-
Если ты это собираешься делать при помощи SQL (пофиг какая СУБД), то никак :)
-
ясен пень никак
хочу посредством php :)
-
mysql_query("SHOW TABLES");
Получаешь все таблицы.
Далее для каждой таблицы цикл
{
$r=mysql_query("SELECT * FROM $table_name LIMIT 1");
далее
mysql_num_fields($r); - кол-во столбцов
цикл{
$field=mysql_field_name($r, $i) - $i номер столбца
if (empty($your_global_where))
$your_global_where.="$field LIKE \'%$your_global_word%\'";
else
$your_global_where.=" or $field LIKE \'%$your_global_word%\'";
}
SELECT * FROM $table_name WHERE $your_global_where
}
Вот в общем-то весь алгоритм.
-
а зачем тебе это нужно?
если база большая, то все это очень долго работать будет ..
тем более что индексы тут использоваться в запросах не будут ...
-
если база большая, то все это очень долго работать будет ..
тем более что индексы тут использоваться в запросах не будут
Точно.
Геморой это, если только не разово эт использовать.
-
спасиба мужики за отзывчивость и оперативность :)
нужно все это для поиска по сайту
конкретнее человек отправляет запрос слова или словосочитания, все это переваривает база и выдает результаты, короче говоря стандартный поиск по сайту
вот я ничего умней пока не придумал, можно конечно создать еще одну таблицу в базе и индексировать всю базу туда
как это вообще люди реализуют?
может сам подход в корне не верен?
-
scasic
Ну вообще не очень верен.
ИМХО правильнее дать человеку возможность искать только определенные вещи в определенных разделах.
-
в определенных разделах.
а если человек хочет по всем разделам, глобально так сказать?
-
НУ что значит глобально?
Базу надо так построить, чтобы поиск огранициля двумя-тремя таблицами.
-
ThE0ReTiC
НУ что значит глобально?
Базу надо так построить, чтобы поиск огранициля двумя-тремя таблицами.
Точно. Поиск, например, в доске объявлений это одно, а поиск по сайту эт другое.
scasic
А есть у тя у прова где хостишся Yandex-Site установленный (самому его геморойно устанавливать)?
Если да, то скорее мессагуй!!!
Ох%№#ный метод заценю!
-
scasic
В теме Search на сайте народу посоветоали не гемороиться, а просто установить маленькую поисковую машинку как e Google или урезать яндексную и использовать ее....(яндексу говоришь искать не по всему, а только по твоему сайту)
Я думаю что Alexandr именно это и хотел предложить!!!
-
scasic
В теме Search на сайте народу посоветоали не гемороиться, а просто установить маленькую поисковую машинку как e Google или урезать яндексную и использовать ее....(яндексу говоришь искать не по всему, а только по твоему сайту)
Я думаю что Alexandr именно это и хотел предложить!!!
Просто хотел подписаться под своим высказыванием!!!
-
Я думаю что Alexandr именно это и хотел предложить!!!
Да нет.
Yandex-Site freeware\'ная прога устанавливается на серваке. Задаёщь сколько раз индексировать твой сайт (раз в день, ч/з день и т.д.). И работает она только на тебя.
Глянь как сделал я. http://www.autodealer.ru/_search.php
Правда не совсем рабочая версия, т.к. у моего прова бесплатно мона индексировать тока 5 метров. И он мне заиндексил не те страницы которые я хотел.
Мне надо ещё запретить МОЕМУ yandex\'у индексировать не нужные страницы.
Т.о получаем быстрый, навороченый (морфология, спец знаки и т.д. всё что есть у яндекса) и с автоматом обновляемой БД безовсяких усилий.
Зацени саму реализацию.
Делал 1/4 раб. дня.
Пишите отзывы.