X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Php и MySql связанные таблицы
forest69
forest69
Topic Starter сообщение 6.6.2010, 14:59; Ответить: forest69
Сообщение #1


Возник вопрос....
есть 2 таблицы:

В 1 содержаться года, во 2 соответствующие этим годам имена.
Я читал в инете, что нужно делать через связанные таблицы, как это сделать в mysql я понял, а вот как это все реализовать через php, чтобы человек вводил год, в другом поле имена и они соотносились.

Может кто знает? или где можно прочитать?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
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
alexdrob
сообщение 6.6.2010, 15:19; Ответить: alexdrob
Сообщение #3


вот как вы это сделали через mysql берёте свой запрос и вписываете его
[PHP]mysql_connect('localhost','root','pass');
$res=mysql_qeury('сюда');[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 6.6.2010, 15:36; Ответить: forest69
Сообщение #4


ага, спасибо вам
будем делать)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 7.6.2010, 21:58; Ответить: 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
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
Witu
сообщение 7.6.2010, 22:13; Ответить: Witu
Сообщение #7


or die(mysql_error()) после каждого mysql_query() ставь и узнаеш )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 7.6.2010, 22:27; Ответить: forest69
Сообщение #8


спасибо вам, ваши сообщения помогли)))

и еще вопрос, они создались
а как проверить связанны они или нет?)))
просто я не очень уверен, что правильно получилось)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
Topic Starter сообщение 7.6.2010, 22:40; Ответить: forest69
Сообщение #9


Попробовал создавать 2 таблицы в 1 запросе не получилось. Так и должно быть?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
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.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3289 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1168 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44760 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3360 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 28.3.2024, 13:10
Дизайн