dhtmlxgridを使用して、ラインデータベースデータを編集できるユーザーにMySQLデータベース情報を表示しています。 1つの列productionstage
は、値をStaged Done
に変更できるコンボボックス列として表示されます。これにより、DBテーブルが完全に更新されます。ただし、Staged Done
の値をテストするには、productionstage列の値を確認する必要があります。 productionstageがその値に設定されている場合、別の列stagestatus
が同じテーブルにあり、その値をProduction
に更新する必要があります。 DBテーブルのstagestatusカラムは、エンドユーザが表示可能なカラムではなく、バックエンドでトリガされることが望ましいです。dhtmlxgrid列選択オプションが変更されたときに別のデータベース値を更新する
すべてのご協力をいただきありがとうございます。ありがとうございました!
マイCODE:
//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);
}
NOTE ::私は以前、プログラマが使用する既存の方法は、SQLインジェクション攻撃へのスクリプトを公開していることを理解して - 私はまた、このスクリプトは、プリペアドステートメントを使用するように更新されます...ありがとうございました!
エラーが発生しますか? '$ sql1'に余分なカッコがありますが、それは誤字かもしれません。 –
ページを調べてもエラーは出ませんが、2番目のUPDATEステートメントのためにdhtmlxgridが行の更新に失敗しているのがわかります。 dhtmlxgridは、グリッドごとに1つのUPDATE文を処理することのみを目的としていますか?もしそうなら、コードを調整して値をテストし、IFステートメントロジックに基づいて正しいUPDATEステートメントを実行します。 – rdimouro