Автоматическое изменение поля в предыдущей записи
Автор yuriygrad, 30 июня 2013 10:17
Сообщений в теме: 9
#1
Отправлено 30 Июнь 2013 - 10:17
Доброго утра!
Подскажите, пожалуйста, как составить вычисление, чтобы при добавлении новой записи все предыдущие значения менялись на "В работе/Нет", а последнее принимало значение "В работе/Да"
(поле "В работе" , тип поля список: Да, Нет)
Очень прошу, приведите, пожалуйста хотя-бы небольшой кусочек вычисления. (у меня знания оставляют желать лучшего).
Пример во вложении.
Сейчас приходится предыдущий статус в ручную менять на "В работе/нет".
Подскажите, пожалуйста, как составить вычисление, чтобы при добавлении новой записи все предыдущие значения менялись на "В работе/Нет", а последнее принимало значение "В работе/Да"
(поле "В работе" , тип поля список: Да, Нет)
Очень прошу, приведите, пожалуйста хотя-бы небольшой кусочек вычисления. (у меня знания оставляют желать лучшего).
Пример во вложении.
Сейчас приходится предыдущий статус в ручную менять на "В работе/нет".
#2
Отправлено 30 Июнь 2013 - 12:16
Добавляете вычисление с условием изменения поля ID.
".DATA_TABLE."86 - вместо 86 поставляете айди таблицы "История работы"
$line['Поле связи'] - вместо "Поле связи подставляете Имя поля связи таблицы "История работы"
f1313 - это айди поля связи "История работы", тоже меняете на то что у вас в кб. Вычисление писал с планшета. Перед использованием сделайте бекап.
$line['В работе'] = "Да";
$sqlQuery = "SELECT `id` FROM ".DATA_TABLE."86 WHERE `status` = 0 AND `id` != ".intval($line['ID'])." AND `f1313` = ".intval($line['Поле связи']);
$result = sql_query($sqlQuery);
while($row = sql_fetch_assoc($result)) {
$update_data = array();
$update_data['В работе'] = "Нет";
update_query($update_data, "История работы", "`id` = ".intval($row['id']));
}
".DATA_TABLE."86 - вместо 86 поставляете айди таблицы "История работы"
$line['Поле связи'] - вместо "Поле связи подставляете Имя поля связи таблицы "История работы"
f1313 - это айди поля связи "История работы", тоже меняете на то что у вас в кб. Вычисление писал с планшета. Перед использованием сделайте бекап.
Сообщение отредактировал wondertalik: 30 Июнь 2013 - 12:16
#3
Отправлено 30 Июнь 2013 - 13:11
$line['В работе'] = "Да";
$sqlQuery = "SELECT `id` FROM ".DATA_TABLE."521 WHERE `status` = 0 AND `id` != ".intval($line['ID'])." AND `f4691` = ".intval($line['Контакт']);
$result = sql_query($sqlQuery);
while($row = sql_fetch_assoc($result)) {
$update_data = array();
$update_data['В работе'] = "Нет";
update_query($update_data, "История работы", "`id` = ".intval($row['id']));
}
Спасибо Вам за ответ!
При добавлении новой записи, предыдущее значение не меняется, то есть остается "Да".
При этом если попробовать добавить запись "Нет,
при сохранении значение изменится на "Да"
Часть структуры базы во вложении
#4
Отправлено 30 Июнь 2013 - 14:50
Позже проверю. Отпишусь.
#5
Отправлено 30 Июнь 2013 - 18:31
Цитата
Добавляете вычисление с условием изменения поля ID.
Будьте внимательней - условия вычисления вы не то поставили.
#6
Отправлено 30 Июнь 2013 - 20:02
Спасибо Вам за терпение! Но к сожалению не получается.
Возможно, что то я не доглядел. Будет интересно узнать работает ли код у Вас.
Возможно, что то я не доглядел. Будет интересно узнать работает ли код у Вас.
#7
Отправлено 30 Июнь 2013 - 22:15
yuriygrad (30 Июнь 2013 - 20:02) писал:
Спасибо Вам за терпение! Но к сожалению не получается.
Возможно, что то я не доглядел. Будет интересно узнать работает ли код у Вас.
Возможно, что то я не доглядел. Будет интересно узнать работает ли код у Вас.
Господа разработчики - как отслеживать вычислениями новую запись, добавленную в таблицу?
Сообщение отредактировал wondertalik: 30 Июнь 2013 - 23:22
#8
Отправлено 01 Июль 2013 - 10:36
Цитата
Господа разработчики - как отслеживать вычислениями новую запись, добавленную в таблицу?
Новую запись здесь отслеживать никакой необходимости нет (к тому же она может быстро стать и не новой), нужно отслеживать последнюю запись, по максимальную номеру ID.
$data = data_table("История работы", "status=0 and `Поле связи`='".$line['Поле связи']."' ORDER BY id DESC");
if ($line['ID']==$data['ID']) $line['В работе'] = "Да"; else $line['В работе'] = "Нет";
Вычисление ставим на отображение поля "В работе". Результат видим после обновления страницы.
#10
Отправлено 01 Июль 2013 - 10:57
Насколько помню, за это отвечает поле "r".
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных













