Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Мультиязычность для фотогалереи (Андрей) 12/01/2009 - 19:50:51



From: Андрей - 12/01/2009 - 19:50:51
Subject:Мультиязычность для фотогалереи
-----------------
Заранее хочу попросить прощения если подобный вопрос уже задавался здесь, просто перечитать 300+ страниц неосилил (

Вопрос в следующем:
Есть таблица с изображениями (photogalery_photos) и таблица с описаниями изображений(photogalery_photos_texts), изображения с описаниями связываются через таблицу (photogalery_photos_rel) с ключем языка.

CREATE TABLE `languages` (
`id` tinyint(4) NOT NULL auto_increment,
`short` char(3) NOT NULL default '',
`name` varchar(128) NOT NULL default '',
`image` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

INSERT INTO `languages` VALUES (1, 'eng', 'English', '');
INSERT INTO `languages` VALUES (2, 'рус', 'Русский', '');


CREATE TABLE `photogalery_photos` (
`id` int(11) NOT NULL auto_increment,
`photo_position` int(11) NOT NULL default '0',
`photogalery_section_id` int(11) NOT NULL default '0',
`file_name` varchar(255) NOT NULL default '',
`status` tinyint(4) NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`timestamp` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


CREATE TABLE `photogalery_photos_rel` (
`id` int(11) NOT NULL auto_increment,
`photogalery_photos_id` int(11) NOT NULL default '0',
`photogalery_photos_text_id` int(11) NOT NULL default '0',
`language` smallint(6) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `photogalery_photos_id` (`photogalery_photos_id`),
KEY `photogalery_photos_text_id` (`photogalery_photos_text_id`),
KEY `language` (`language`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


CREATE TABLE `photogalery_photos_texts` (
`id` int(11) NOT NULL auto_increment,
`header` varchar(255) NOT NULL default '',
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Запрос выглядит примерно так:
$query = " SELECT photogalery_photos.id id,
photogalery_photos.file_name file_name,
photogalery_photos_texts.header header,

FROM photogalery_photos
LEFT OUTER JOIN photogalery_photos_rel ON photogalery_photos.id = photogalery_photos_rel.photogalery_photos_id
AND photogalery_photos_rel.language = ".$language."
LEFT OUTER JOIN photogalery_photos_texts ON photogalery_photos_rel.photogalery_photos_text_id = photogalery_photos_texts.id
WHERE photogalery_photos.photogalery_section_id = ".$section." LIMIT ".(($page-1)*$photos_on_page).", ".($photos_on_page);

Проблема заключается в том, чтобы перезаписать запрос так чтобы в сэлэкте количество photogalery_photos_texts.header header увеличивалось в зависимости от количества языков и соответственно значения хидеров соответствовали значениям для нужного языка о_О

id filename header1 header2
1 f_name1 h1_rus h2_eng
2 f_name2 h3_rus h4_eng
3 f_name3 null h6_eng

Юзаю MySQL 4.1.16-max


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
34844



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |