Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySql связь таблиц
 
 автор: Inferno   (25.04.2007 в 00:31)   письмо автору
 
 

Здрасти, уже неделю ущу что нить путное по связи таблиц в мускуле, но не нашел ничего.
Пожалуйства расскажите кто нить за человеческое спасибо с чувством с толком с расстоновкой:

Есть две таблицы или более
1 id_cinema, namecinema
2 id_city, namecity, id_cinema

как связать эти две таблицы, то есть как организовать запрос в мускул для их соpдание и как организовать запрос что бы при чтении только второй таблицы то есть SELECT * FROM 2
выводилось id_city namecity namecinema

   
 
 автор: cheops   (25.04.2007 в 00:48)   письмо автору
 
   для: 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

   
 
 автор: Inferno   (29.04.2007 в 13:19)   письмо автору
 
   для: 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
а потом в скрипте отсеивать значения фильма одинаковые
как то не так, как это лучше сделать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования