Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск в нескольких таблицах MySQL
 
 автор: Clocker   (20.11.2005 в 23:06)   письмо автору
 
 

Собственно, как организовать поиск в нескольких таблицах MySQL?

К примеру у меня есть таблицы со статьями, новостями и т.п. Как искать во всех и выводить результаты поиска с пометкой "найдено в разделе Новости", если что-то найдено??

   
 
 автор: ck   (20.11.2005 в 23:29)   письмо автору
 
   для: Clocker   (20.11.2005 в 23:06)
 

Мне кажется, многотабличный запрос здесь не уместен, т.к. не уверен, что есть средства при таком запросе сохранить информацию о месте, где найдено.
То есть можно организовать ряд однотабличных запросов. Вроде:

<?php
$find_it = $_POST['find_it'];
$str = "select * from news";
$res = mysql_query($str);
while ($mas = mysql_fetch_array($res))
{
if (strstr($mas['text'], $find_it))
{
?>
<a href = "
<?php
echo $mas['href'];
?>
"> "Найдено в разделе news, под датой <?php
echo $mas['date'];
?>

Конечно, это подразумевает, что в таблице news есть атрибуты: href (адрес страницы), text(содержимое страницы) и date(дата новости).

   
 
 автор: ck   (20.11.2005 в 23:33)   письмо автору
 
   для: ck   (20.11.2005 в 23:29)
 

Ну и можно сделать всю эту историю функцией, принимающей в качестве параметров имя таблицы и имена атрибутов в ней. А затем вызвать ее столько раз, в скольких таблицах нужно провести запрос.
Опять-таки, если очень хочется, можно затем представить список имен таблиц, где нужно искать, в виде массива, в каждый элемент заложить в свою очередь массив с атрибутами, и прогнать все это через описанную функцию.
ps. В первом сообщении забыл в конце указать закрытие:
</a>
<?php
}
}
?>

   
 
 автор: DDK   (21.11.2005 в 07:18)   письмо автору
 
   для: ck   (20.11.2005 в 23:29)
 

Что бы не сильно нагружать скрипт, лучше искать на уровне базы. Читаем тут: http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=9539&page=1

   
 
 автор: cheops   (21.11.2005 в 12:52)   письмо автору
 
   для: Clocker   (20.11.2005 в 23:06)
 

Используется полнотекстовый поиск или при помощи RLIKE?

   
 
 автор: Clocker   (21.11.2005 в 23:07)   письмо автору
 
   для: cheops   (21.11.2005 в 12:52)
 

А как организовать лучше? В принципе можно искать по одному слову.

   
 
 автор: cheops   (22.11.2005 в 01:15)   письмо автору
 
   для: Clocker   (21.11.2005 в 23:07)
 

Возможно вас заинтересую следующие темы
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=514
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=807
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5311

   
 
 автор: Clocker   (22.11.2005 в 10:59)   письмо автору
 
   для: cheops   (22.11.2005 в 01:15)
 

благодарю за ссылки, обязательно посмотрю

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования