Mysql Вставить данные в несколько таблиц из массива - PullRequest
2 голосов
/ 14 февраля 2012

enter image description here

 Tags array(11) {
  ["album"] => string(17) "Away From The Sun"
  ["artist"] => string(12) "3 Doors Down"
  ["bitrate"] => int(256000)
  ["title"] => string(16) "Ticket to Heaven"
  ["filename"] => string(23) "04 Ticket To Heaven.mp3"
  ["format"] => string(3) "mp3"
  ["play_time"] => float(207.5950625)
  ["genre"] => string(11) "Alternative"
  ["year"] => string(4) "2002"
  ["track"] => string(1) "4"
  ["art"] => string(21) "Away From The Sun.jpg"
}

Мне нужна помощь в получении данных из этого массива, заполнении этих таблиц данными и поддержании связей.Я постоянно извлекаю данные из таких таблиц и строю их на основе известных данных.В этом случае мне неизвестны данные, пока я не проанализирую тег id3.Все 3 таблицы автоматически увеличиваются на «ID».Обычно я работаю в Zend Framework, поэтому ответы в ZF действительно полезны, но php и sql почти так же хороши.Я нашел один вопрос Вставка SQL с данными из нескольких таблиц , который, кажется, решает эту проблему, но у меня нет sql, чтобы понять ответ.Поможет ли таблица ссылок?

PS Я знаю, что линии на рисунке неверны.

1 Ответ

1 голос
/ 14 февраля 2012

Так как отношения зависят от идентификаторов автоинкремента, вероятно, лучше всего вставить таблицу исполнителя и затем вызвать $artist_id = mysql_insert_id(), чтобы получить новый номер идентификатора. Затем вы можете вставить в альбом и вызвать ту же функцию, что и $album_id = mysql_insert_id () `. Наконец вставьте ваши треки, используя идентификаторы, которые вы только что получили.

Вы сможете убедиться, что у вас нет альбомов без исполнителей или дорожек без альбомов, и вам нужно будет вставлять альбомы и дорожки без создания новых исполнителей или альбомов, так что этого должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...