|
|
|
|
|
для: Inferno
(25.04.2007 в 00:31)
| | есть база picture с таблицами
$sql = 'CREATE TABLE `main` ('
. ' `id` INT NOT NULL AUTO_INCREMENT, '
. ' `id_city` INT NOT NULL, '
. ' `id_cinema` INT NOT NULL, '
. ' `id_zal` INT NOT NULL, '
. ' PRIMARY KEY (`id`)'
. ' ) DEFAULT CHARSET=cp1251';
$sql = 'CREATE TABLE `cinema` ('
. ' `id` INT NOT NULL AUTO_INCREMENT, '
. ' `namecinema` CHAR(20) NOT NULL, '
. ' `aboutcinema` CHAR(1500) NOT NULL, '
. ' `id_about` INT NOT NULL, '
. ' PRIMARY KEY (`id`) '
. ' ) DEFAULT CHARSET=cp1251 ';
$sql = 'CREATE TABLE `city` ('
. ' `id` INT NOT NULL AUTO_INCREMENT ,'
. ' `namecity` CHAR( 20 ) NOT NULL ,'
. ' `aboutcity` CHAR( 1000 ) NOT NULL ,'
. ' PRIMARY KEY ( `id` ) '
. ' ) DEFAULT CHARSET=cp1251';
$sql = 'CREATE TABLE `about` ('
. ' `id` INT NOT NULL AUTO_INCREMENT, '
. ' `bufet` CHAR(1000) NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' ) DEFAULT CHARSET=cp1251';
$sql = 'CREATE TABLE `screen` ('
. ' `id` INT NOT NULL AUTO_INCREMENT, '
. ' `date` DATE NOT NULL, '
. ' `time` TIME NOT NULL, '
. ' `namepicture` CHAR(20) NOT NULL, '
. ' `aboutpicture` CHAR(1000) NOT NULL,'
. ' `year` CHAR(20) NOT NULL,'
. ' `country` CHAR(20) NOT NULL,'
. ' `director` CHAR(20) NOT NULL,'
. ' `type` CHAR(20) NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' ) DEFAULT CHARSET=cp1251';
$sql = 'CREATE TABLE `zal` ('
. ' `id` INT NOT NULL AUTO_INCREMENT, '
. ' `zal` ENUM("Большой","Малый") NOT NULL,'
. ' `id_screen` int NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' ) DEFAULT CHARSET=cp1251';
main - таблица связей, включающая таблица city, cinema и zal.
В свою очередь таблица cinema включает таблицу about,
а таблица zal включает таблицу screen
Запрос:
SELECT * FROM main
LEFT JOIN city ON main.id_city = city.id
LEFT JOIN cinema ON main.id_cinema = cinema.id
LEFT JOIN zal ON main.id_zal = zal.id
--выводит только таблицвы которые я указал как организвать запрос что бы выводилась вся база со всевозможными полями?
Еще Я хочу вывести данные в виде
Кинотеатр 1 - Город 1
Название фильма 1 - время 1
- время 2
- время 3
Название фильма 2 - время 1
- время 1
- время 2
и тд. Как именно мне сделать?
Название фильма 1 - время 1
- время 2
- время 3
Название фильма 2 - время 1
- время 1
- время 2
В базе писать всё
фильм 1 время 1
фильм 1 время 2
фильм 1 время 3
а потом в скрипте отсеивать значения фильма одинаковые
как то не так, как это лучше сделать? | |
|
|
|
|
|
|
|
для: Inferno
(25.04.2007 в 00:31)
| | Необходимо назначить поле id_cinema первичным ключём и снабдить атрибутом AUTO_INCREMENT - тогда передача значения NULL этому полю будет приводить к созданию уникального номера, получить который можно будет при помощи функции mysql_insert_id(), вызываемой сразу после INSERT-запроса. Этот номер вы сможете использовать для поля id_cinema второй таблицы.
Запрос на извлечение данных может выглядеть следующим образом
SELECT tbl2.id_city AS id_city,
tbl2.namecity AS namecity,
tbl1.namecinema AS namecinema
FROM tbl1, tbl2
WHERE tbl1.id_cinema = tbl2.id_cinema
GROUP BY tbl1.id_cinema
|
| |
|
|
|
|
|
|
| Здрасти, уже неделю ущу что нить путное по связи таблиц в мускуле, но не нашел ничего.
Пожалуйства расскажите кто нить за человеческое спасибо с чувством с толком с расстоновкой:
Есть две таблицы или более
1 id_cinema, namecinema
2 id_city, namecity, id_cinema
как связать эти две таблицы, то есть как организовать запрос в мускул для их соpдание и как организовать запрос что бы при чтении только второй таблицы то есть SELECT * FROM 2
выводилось id_city namecity namecinema | |
|
|
|
|