| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
nkostya 01.06.2004 21:28 / 01.06.2004 21:31
CREATE TABLE movie_to_person ( movie_id int(10) NOT NULL default '0', person_id int(10) NOT NULL default '0', status tinyint(4) NOT NULL default '0', UNIQUE KEY ix_movie_to_person_0 (movie_id,person_id,status), KEY ix_movie_to_person_3 (person_id), KEY ix_movie_to_person_1 (movie_id,person_id), KEY ix_movie_to_person_2 (movie_id), KEY ix_movie_to_person_4 (status) ) TYPE=MyISAM; CREATE TABLE person ( person_id int(10) NOT NULL auto_increment, eng_name varchar(255) default NULL, rus_name varchar(255) binary default NULL, PRIMARY KEY (person_id), UNIQUE KEY ix_person_1 (rus_name), UNIQUE KEY ix_person_2 (eng_name), KEY ix_person_0 (person_id) ) TYPE=MyISAM;
movie_id - id фильма
type - тип привязки (режиссер/актер)
lang - по какому языку смотрим (rus/eng)
...
$person[^MAIN:pSQL.sql[table][
SELECT
person.person_id as id,
person.eng_name,
person.rus_name,
IF(movie_to_person.movie_id IS NOT NULL,1,0) as checked
FROM
person
^MAIN:pSQL.left_join[from;movie_to_person;movie_to_person.person_id = person.person_id AND movie_to_person.movie_id = $movie_id && movie_to_person.status = $type]
WHERE
^if($letter ne "other"){
^MAIN:pSQL.upper[person.${lang}_name] LIKE '$letter%'
}{
$alphabet[^table::load[nameless;_${lang}_alphabet.cfg]]
(^alphabet.menu{
^MAIN:pSQL.upper[person.${lang}_name] NOT LIKE '$alphabet.0%'
}[AND]) OR
person.${lang}_name IS NULL
}
ORDER BY
id ASCИ потом делаю ^person.menu и генерирую XML...