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


Непонятки с копированием значений.


В теме одно сообщение

#1 makeev

    Участник

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

Отправлено 17 Июль 2015 - 22:55

Есть две таблицы.
Таб1 - компоненты с уникальным номером НБ.
Таб2 - продукт (набор из компонентов отсортированный по дате отгрузки). Так же присутствует поле НБ - связь с уникальным номером из Таб1.
Дальше начинается непонятка.
Выполняю дополнительное действие.

   $data['НБ'] = $line['НБ'];
   $data['Название'] = $line['Название'];
   $data['Кол-во'] = $line['Кол-во'];
   insert_query($data,"Таб2");

Все копируется но - НБ в Таб2 (числовое значение поле связи) вписывается на единицу меньше чем в Таб1.
Если компонент с номером 15 в Таб1 то в Таб2 он копируется с номером 14.
Если 1 то 0.
Если 0 то пусто.

Вычислений никаких нет, все тихо-примитивно и где-то по дороге цифра уменшается на 1.

Дальше интересно.

   $data['НБ'] = "11";

На выходе в Таб2 - 10.

   $data['Название'] = $line['НБ'];

На выходе все верно. В поле Название - уникальный совпадающий номер.

На обычном хостинге есть бесплатная версия КБ.
Там создал туже ситуацию - все копируется верно. Версии кончились,
Не могу понять, что мне делать то? ) Где я накосячил.

#2 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Июль 2015 - 11:18

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

$data['НБ'] = $line['ID'];

То, что у вас в одном случае было "значение номера - 1", а в другом - совпадало, объясняется разницей между значениями ID и номера (в первом случае 1, во втором 0).





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

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