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


Добавление записей через форму


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

#1 TelecomMedia

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

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

Отправлено 04 Ноябрь 2014 - 21:24

В таблице есть внешняя форма на добавление записей.

Необходимо, чтобы при добавлении новой записи через форму при совпадении значения в поле "телефон" запись обновлялась, а не добавлялась новая (такая настройка есть при импорте - при совпадении значений обновлять запись).

#2 CbCoder

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

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

Отправлено 05 Ноябрь 2014 - 09:27

Добавляете вычисление в форму, где проверяете наличие записи с указанным телефоном. Если запись есть - обновляете ее.

#3 TelecomMedia

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

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

Отправлено 12 Ноябрь 2014 - 08:40

Помогите, пожалуйста, составить корректный запрос.

Начал его составлять, но споткнулся. Боюсь, что при неправильно составленном запросе могу обновить все записи в таблице.

$result = data_select_field(931, "f22141 as tel", "status=0 AND f22141=",$line['f22141']);
$row = sql_fetch_assoc($result);


if ($row['tel'] == $line['f22141'])
// то здесь условие на обновление полей найденной записи

22141 - поле с номером телефона. В нем и нужно искать совпадение (на наличие) при добавлении записи через форму. Если такого телефона нет - создаем новую запись.Если есть - обновляем поля текущей записи.

Заранее спасибо.

Сообщение отредактировал fabrika-r: 12 Ноябрь 2014 - 08:41


#4 CbCoder

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

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

Отправлено 17 Ноябрь 2014 - 12:10

А что смущает? Далее обновляете запись. Еще необходимо будет отменить через вычисление собственно добавление, если вы обновляете запись. См. документацию.

#5 Tony999

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

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 05 Январь 2015 - 00:33

У меня тоже вопрос про добавление записей через внешнюю форму.
Очень хочется узнать id добавленной таким образом записи.
Как это возможно сделать? Спасибо!
Умные сайты на заказ
https://info.crm-master.info

#6 CbCoder

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

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

Отправлено 09 Январь 2015 - 16:02

$line['ID'] не работает разве?

#7 Tony999

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

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 16 Январь 2015 - 09:39

Просмотр сообщенияCbCoder (09 Январь 2015 - 16:02) писал:

$line['ID'] не работает разве?

Так это надо зайти в таблицу к которой привязана внешняя форма и уже там, в вычислениях попросить $line['ID'].
А хочется знать id новой записи сразу после отправки внешней формы. Ведь она создает новую запись... возможно, типа $row = data_insert(...
Так вот надо это $row узнать и куда-то занести (например в _SESSION) как только внешняя форма закончит свою работу.
Умные сайты на заказ
https://info.crm-master.info

#8 CbCoder

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

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

Отправлено 16 Январь 2015 - 11:57

Да, действительно, моя проверка показала, что $line['ID'] там хоть и есть, но пустой (в отличие от остальных полей). Связано это видимо с тем, что вычисление внешней формы работает до добавления записи, в отличие от вычислений в самой таблице. Но тогда его в любом случае никак не получить в данном месте, т.к. его попросту еще нет.

#9 Tony999

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

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 17 Январь 2015 - 02:54

Но ведь какой-то код реально эту новую запись создает. Может быть он "оставляет след" в виде id этой новой записи и его как-то можно получить?
Умные сайты на заказ
https://info.crm-master.info

#10 CbCoder

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

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

Отправлено 19 Январь 2015 - 09:14

Этот внутренний код работает уже после выполнения вычисления во внешней форме. Соответственно, получить его можно только в вычислениях самой таблицы.





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

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