Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск по бвум и более таблицам, как осуществить ? 
V
    Опции темы
americanets
Дата 2.5.2007, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



есть таблицы pages и news

Код

CREATE TABLE `pages` (
  `id` bigint(20) NOT NULL auto_increment,
  `website_title` text,
  `website_description` text,
  `name_url` varchar(255) NOT NULL default '',
  `menu_neme` varchar(255) NOT NULL default '',
  `content` text,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `content` (`content`)
);



Код

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `nazvanie` text,
  `kratko` text,
  `content` text,
  PRIMARY KEY  (`id`)
);


по страницам ищу 

Код

SELECT *, MATCH (content) AGAINST ('$Search') as rel FROM `pages` WHERE `content` LIKE '%$Search%' ORDER BY rel DESC


причем еще проблема в том, что то что из таблицы новости ссылка view-news/$id.html 
а из таблицы pages уменя другой вариант вывода, как определить потом из какой таблицы результат чтоб строить вывод ? 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
mishaSL
Дата 3.5.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Использовать UNION.

Цитата(americanets @  2.5.2007,  14:41 Найти цитируемый пост)
как определить потом из какой таблицы результат чтоб строить вывод ?

Добавить в поля выборки какую-нибудь константу, к примеру:
Код

(SELECT 0,`content`, MATCH (content) AGAINST ('$Search') as rel FROM `pages` WHERE `content` LIKE '%$Search%' ORDER BY rel DESC)
UNION
(SELECT 1,`content`, MATCH (content) AGAINST ('$Search') as rel FROM `news` WHERE `content` LIKE '%$Search%' ORDER BY rel DESC)


При разборе результата выборки, где первое поле 0 - там таблица `pages`, где 1 - `news`



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
americanets
Дата 5.5.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



вобщем делаю так:

Код

$querySearches="(SELECT 0,`content`, MATCH (content) AGAINST ('$poisk') as rel FROM `pages` WHERE `content` LIKE '%$poisk%' ORDER BY rel DESC)UNION(SELECT 1,`content`, MATCH (content) AGAINST ('$poisk') as rel FROM `news` WHERE `content` LIKE '%$poisk%' ORDER BY rel DESC) ORDER BY rel DESC";
$querySearches = mysql_query($querySearches) or die (mysql_error());

WHILE ($datSearch=mysql_fetch_array($querySearches))  { 
$identi=$datSearch[0];
$title= $datSearch[website_title];
$content=$datSearch[content];
$content=strip_tags($content);
$HTMLData .= "<li><strong><a href=".$datSearch['id'].">".$identi.$title."</a></strong><br><font color=\"#cccccc\">".$content."...</font><br><br>\n"; 
}


могу определить из какой таблицы результат, но , теперь не могу определить заголовок ( `nazvanie` для новостей,  `website_title` для страниц) и id записи для составления ссылки


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
americanets
Дата 7.5.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 2
Всего: 12



понял, нужно было поля добавить перед MATCH 

Это сообщение отредактировал(а) americanets - 7.5.2007, 12:30


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.