Нужно обновить другое значение базы данных при изменении опции выбора столбца dhtmlxgrid

Я использую dhtmlxgrid для отображения информации базы данных MySQL пользователям с возможностью редактировать данные линейных ячеек. Один столбец productionstage отображается как выпадающий список с возможностью изменить значение на Staged Done, Это прекрасно обновляет таблицу БД. Однако мне нужно проверить значение столбца productionstage, чтобы проверить Staged Done значение. Если производственное значение установлено на это значение, мне нужен еще один столбец stagestatus в той же таблице, чтобы обновить его значение Production, Желательно, чтобы столбец stagestatus в таблице БД НЕ был видимым для конечного пользователя столбцом и вместо этого вызывался на серверной части.

Вся помощь приветствуется. Спасибо!

Мой код:

//update row
$sql =  "UPDATE invoices SET editby='".$editBy."', editpage='".$editPage."', serverip='".$serverIp."', ip='".$Ip."',floornotes='".$_GET["floornotes"]."',productionstage='".$_GET["productionstage"]."' where id=".$_GET["gr_id"]."'";
$res = mysqli_query($sql);if (($_GET['productionstage']) == 'Staged Done' ) {
//update stagestatus from 'Scheduled' to Production if moved to 'Staged Done' in Glass Prep.
$sql1 = "UPDATE invoices SET stagestatus = 'Production') WHERE id=".$_GET["gr_id"]."'";
$res1 = mysqli_query($sql1);

}

ПРИМЕЧАНИЕ :: Я понимаю, что существующий метод, использованный предыдущим программистом, подвергает сценарий атакам SQL-инъекций — я также буду обновлять этот сценарий, чтобы использовать подготовленные операторы … Спасибо!

1

Решение

Так что у меня где-то только что была ошибка в коде. После некоторого тестирования и редактирования следующий код решил проблему (и да, dhtmlxgrid может обрабатывать более одного оператора UPDATE на сетку).

Решение:

    //update row
$sql =  "UPDATE invoices SET editby='".$editBy."', editpage='".$editPage."', serverip='".$serverIp."', ip='".$Ip."',floornotes='".$_GET["floornotes"]."',productionstage='".$_GET["productionstage"]."' where id=".$_GET["gr_id"]."";
$res = mysqli_query($sql);if (($_GET['productionstage']) == 'Staged Done' ) {$sql1 = "UPDATE invoices SET stagestatus = 'Production' WHERE id=".$_GET["gr_id"]."";
$res1 = mysqli_query($sql1);

} else {

print("<action type='error'>SQL query error</action>");

}

Обратите внимание: Мой следующий шаг — дальнейшее обновление кода с использованием подготовленных операторов, чтобы сделать скрипт более безопасным.

Спасибо!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]