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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выборка из базы по 2 полям, во втором несколько значений 
:(
    Опции темы
americanets
Дата 11.6.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



база

Код

CREATE TABLE `site` (
  `id` int(11) NOT NULL auto_increment,
  `namesite` varchar(32) NOT NULL,
  `Domain` varchar(128) NOT NULL default '',
  `mirrors` text NOT NULL,
  UNIQUE KEY `Domain` (`Domain`),
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `site` VALUES (1,'первый сайт', '','');
INSERT INTO `site` VALUES (2,'первый сайт', 'multisite.com','sitem1.ru,siter3.ru');
INSERT INTO `site` VALUES (3,'первый сайт', 'multisite.info','sit.ru,sit3.com');


выбрать по 1 понятно
Код

$domen = str_replace("www.", "", $_SERVER['HTTP_HOST']);
$sql = "SELECT * FROM `site` WHERE `Domain`='$domen'";


но нужно получить значения если $domen попадает и в данные из mirrors те он может быть и sitem1.ru или siter3.ru

еще как бы придумать чтоб Domain мог быть site.ru/eng/ и мог определяться из таких урлов site.ru/eng/contact/.../


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



Код

SELECT * FROM `site` WHERE `Domain`='sitem1.ru' OR `Domain`='siter3.ru'

ну или

SELECT * FROM `site` WHERE `Domain` IN ('sitem1.ru', 'siter3.ru')

или надо вобще:

SELECT * FROM `site` WHERE `Domain`='$domain' OR `mirrors` LIKE '%$domain%'


Али я не так вопрос понял?

Это сообщение отредактировал(а) WolfON - 11.6.2007, 18:49
PM MAIL ICQ   Вверх
sTa1kEr
Дата 11.6.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


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

Репутация: 9
Всего: 146



Цитата(americanets @  11.6.2007,  18:33 Найти цитируемый пост)
но нужно получить значения если $domen попадает и в данные из mirrors те он может быть и sitem1.ru или siter3.ru

Для этого можно использовать оператор LIKE:
Код

$sql = "SELECT * FROM `site` WHERE `Domain`='$domen' OR `mirrors` LIKE '%$domen%'";

Но более оптимально бы было сделать таблицу domains (с полями id домена, id сайта и имя домена) и объединять их через LEFT JOIN
Код

$sql = "SELECT * FROM `site`AS s
   LEFT JOIN `domains` AS d ON s.id = d.site_id
   WHERE s.`Domain`='$domen' OR d.`name` = '$domen'";

Цитата(americanets @  11.6.2007,  18:33 Найти цитируемый пост)
еще как бы придумать чтоб Domain мог быть site.ru/eng/ и мог определяться из таких урлов site.ru/eng/contact/.../ 

Не совсем понял. Нужно что бы поле Domain могло быть URL-ом "site.ru/eng/contact/.../", но искать по домену site.ru? Тогда опять же через LIKE.
PM MAIL   Вверх
americanets
Дата 11.6.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(sTa1kEr @  11.6.2007,  19:08 Найти цитируемый пост)
Не совсем понял. Нужно что бы поле Domain могло быть URL-ом "site.ru/eng/contact/.../", но искать по домену site.ru? Тогда опять же через LIKE. 


что то вроде урла, да , наверное нужно просто еще складывать домен + урл до первого слеша, подумаю как лучше, а вот про структуру таблицы в 

Цитата(sTa1kEr @  11.6.2007,  19:08 Найти цитируемый пост)
 domains (с полями id домена, id сайта и имя домена) 


не совсем понял, а так вроде то, попробую с like хотя если домен 1site.ru и 2site.ru то он оба найдет, а если они относятся к разным сайтам то проблема


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


 




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


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

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