Помощник
|
Php и MySql связанные таблицы |
forest69
|
Сообщение
#1
|
||
|
|
||
|
|||
Arks |
6.6.2010, 15:18;
Ответить: Arks
Сообщение
#2
|
|
Приведу абстрактный пример связанных таблиц:
- Таблица "Персоны"(содержит информацию о физ.лицах): 1. Primary Key (первичный ключ, обычно autoincrement, делает любое поле в таблице "Персоны" уникальным) 2. Фамилия 3. Имя 4. Отчество 5. Год рождения -Таблица "Астрология"(содержит инфо о знаках зодиака и прочей ерунде)? 1. Primary Key(делает любое поле в таблице "Астрология" уникальным)) 2. Знаки Зодиака 3. Описание знаков зодиака 5. Secondary Key(число, соответствующее Primary Key из таблицы "Персоны", позволяет как раз связать две таблицы) Соответственно при добавлении новой записи в таблицу "Персоны" мы вносим в нее все необходимые поля, а затем мы вносим в таблицу "Астрология" новую запись, в которой пока что все поля кроме Secondary Key пустые(Primary Key вносится туда автоматически путем авто-инкрементирования), в Secondary Key мы вносим значение свежедобавленного Primary Key таблицы "Персоны". При таком подходе ничего выдающегося не требуется, только основы работы с базой на php. |
|
|
alexdrob |
6.6.2010, 15:19;
Ответить: alexdrob
Сообщение
#3
|
|
вот как вы это сделали через mysql берёте свой запрос и вписываете его
[PHP]mysql_connect('localhost','root','pass'); $res=mysql_qeury('сюда');[/PHP] |
|
|
forest69
|
Сообщение
#4
|
|
ага, спасибо вам
будем делать) |
|
|
forest69
|
Сообщение
#5
|
|
Создал 1 таблицу вот так:
[PHP] $query = "CREATE TABLE year ( year_id int AUTO_INCREMENT NOT NULL, god varchar(50) NOT NULL, PRIMARY KEY(year_id), ) ENGINE=InnoDB CHARACTER SET=UTF8;"; [/PHP] Дальше создаю 2 связанную с ней таблицу вот так: [PHP] $query = "CREATE TABLE new ( new_id int AUTO_INCREMENT NOT NULL, name varchar(50) NOT NULL, PRIMARY KEY(new_id), FOREIGN KEY (year_id) REFERENCES year(year_id) ON UPDATE CASCADE ) ENGINE=InnoDB CHARACTER SET=UTF8;"; [/PHP] Но 2 таблица не создается. Что я не так делаю? |
|
|
alexdrob |
7.6.2010, 22:13;
Ответить: alexdrob
Сообщение
#6
|
|
во первых название таблиц баз данных и полей нужно брать в такие кавычки не знаю как называются)
`поле` или `таблийа` чтобы навания таблиц например `new` и служебное слово new не путались и не выдавали ошибку типа так [PHP]$query = "CREATE TABLE `new` ( `new_id` int AUTO_INCREMENT NOT NULL, `name` varchar(50) NOT NULL, PRIMARY KEY(`new_id`), FOREIGN KEY (`year_id`) REFERENCES `year`(`year_id`) ON UPDATE CASCADE ) ENGINE=InnoDB CHARACTER SET=UTF8;"; [/PHP] а во вторых я думаю что вам не хватает поля `year_id` типа int в вашей таблице `new` |
|
|
Witu |
7.6.2010, 22:13;
Ответить: Witu
Сообщение
#7
|
|
or die(mysql_error()) после каждого mysql_query() ставь и узнаеш )
|
|
|
forest69
|
Сообщение
#8
|
|
спасибо вам, ваши сообщения помогли)))
и еще вопрос, они создались а как проверить связанны они или нет?))) просто я не очень уверен, что правильно получилось) |
|
|
forest69
|
Сообщение
#9
|
|
Попробовал создавать 2 таблицы в 1 запросе не получилось. Так и должно быть?
|
|
|
alexdrob |
7.6.2010, 22:54;
Ответить: alexdrob
Сообщение
#10
|
|
http://php.net/manual/en/function.mysql-query.php
mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3397 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1241 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44902 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1889 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3402 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 19.4.2024, 6:23 |