Перейти к содержимому


Занесение данных в другую таблицу


Сообщений в теме: 10

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 02 Июнь 2010 - 02:03

Есть 3 таблицы. 1 и 2 с данными. А 3 - общая, которая должна подгружать данные с 1 и 2 таблицы(некоторые поля). Как это можно реализовать?

#2 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 867 сообщений
  • Пол:Мужчина

Отправлено 04 Июнь 2010 - 08:25

Просмотр сообщенияwondertalik (2.6.2010, 2:03) писал:

Дабы не создавать новую тему, так как предмет вопроса схож, пишу здесь: Есть 3 таблицы. 1 и 2 с данными. А 3 - общая, которая должна подгружать данные с 1 и 2 таблицы(некоторые поля). Как это можно реализовать?
В таблицах 1 и 2 пишете вычисления, которые обновляют таблицу 3. Таким образом при сохранении записей в таблицах 1 и 2 данные будут заноситься и в таблицу 3.

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 07 Июнь 2010 - 04:41

Просмотр сообщенияТехподдержка (4.6.2010, 8:25) писал:

Вычисления таблицы 1 и 2 пишете вычисления, которые обновляют таблицу 3. Таким образом при сохранении записей в таблицах 1 и 2 данные будут заноситься и в таблицу 3.
Как можно связать таблицы таким образом, что при удалении строки с таблицы 1, удалялясь соответсвенная строка с таблицы 3? Есть ли в какой-то механизм? Реализовать можно с помощь внешних ключей, но для этого необходимо поменять типы таблиц на innodb, поддерживает ли подобное ваша срм?

#4 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 867 сообщений
  • Пол:Мужчина

Отправлено 07 Июнь 2010 - 10:23

Пока такой механизм не предусмотрен. В будущих версиях планируется добавить вычисления выполняемые при удалении строки (сейчас работают только при сохранении). Переход на InnoDB не планируется.

#5 dill

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 07 Июнь 2010 - 13:30

Цитата

В таблицах 1 и 2 пишете вычисления, которые обновляют таблицу 3. Таким образом при сохранении записей в таблицах 1 и 2 данные будут заноситься и в таблицу 3.

Можете привести небольшой пример что именно нужно писать в вычислениях?

#6 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 867 сообщений
  • Пол:Мужчина

Отправлено 07 Июнь 2010 - 15:45

Просмотр сообщенияdill (7.6.2010, 13:30) писал:

Можете привести небольшой пример что именно нужно писать в вычислениях?

Этот код необходимо занести в вычисления таблицы ,и он будет срабатывать при сохранении записи в таблице "Ваша таблица1"
$data = data_table("Ваша таблица1","id={ID}"); // Заносим данные текущей строки в массив $data
$insert_data["Ваше поле1"] = $data["Ваше поле1"]; // Создаем массив для полей второй таблицы и заносим туда нужные значения из массива $data
$insert_data["Ваше поле2"] = $data["Ваше поле2"];
$insert_data["Ваше поле3"] = $data["Ваше поле3"];
$insert_data["Ваше поле4"] = $data["Ваше поле4"];
insert_query($insert_data, "Ваша таблица2"); // Вставляем данные из массива $insert_data в таблицу "Ваша таблица2"


#7 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 07 Июнь 2010 - 15:59

Просмотр сообщенияТехподдержка (7.6.2010, 15:45) писал:

Этот код необходимо занести в вычисления таблицы ,и он будет срабатывать при сохранении записи в таблице "Ваша таблица1"
$data = data_table("Ваша таблица1","id={ID}"); // Заносим данные текущей строки в массив $data
$insert_data["Ваше поле1"] = $data["Ваше поле1"]; // Создаем массив для полей второй таблицы и заносим туда нужные значения из массива $data
$insert_data["Ваше поле2"] = $data["Ваше поле2"];
$insert_data["Ваше поле3"] = $data["Ваше поле3"];
$insert_data["Ваше поле4"] = $data["Ваше поле4"];
insert_query($insert_data, "Ваша таблица2"); // Вставляем данные из массива $insert_data в таблицу "Ваша таблица2"
Ко всему прочему, я бы еще добавил проверку на наличие значений. Так как при изменении данных, необходимо обновлять значения. Инсерт здесь не поможет.

#8 dill

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 07 Июнь 2010 - 16:53

Спасибо, получилось. Но возникла следующая проблема.
В исходной таблице, когда я добавляю новую строку, есть поле которое заполняется вычислением.
Когда же я хочу эти данные добавить во 2-ю таблицу путем вычисления таблицы, то добавляется пустота или 0.
Как быть в этом случае?

#9 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 07 Июнь 2010 - 17:07

Просмотр сообщенияdill (7.6.2010, 16:53) писал:

Спасибо, получилось. Но возникла следующая проблема.
В исходной таблице, когда я добавляю новую строку, есть поле которое заполняется вычислением.
Когда же я хочу эти данные добавить во 2-ю таблицу путем вычисления таблицы, то добавляется пустота или 0.
Как быть в этом случае?
А можно вычисления сюда? И чуток подробнее?

#10 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 07 Июнь 2010 - 21:39

Есть ли возможность создавать запрет редактирования строки в таблице, если заполненно какое-то конкретное поле некоторым значением в этой строке?

#11 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 867 сообщений
  • Пол:Мужчина

Отправлено 08 Июнь 2010 - 08:55

Нет, такой возможности в программе пока нет.





Количество пользователей, читающих эту тему: 7

0 пользователей, 7 гостей, 0 анонимных