私は、管理者が従業員が提出したアクセスフォームとレビューフォームを持つWebサイトを作成するためにPHPを使用しています。レビューPHPファイルでは、基本的にフォームを承認または不承認とする2つのボタンを作成しました。ボタンの1つをクリックすると、別のPHPファイルにリダイレクトされ、実際にMySQLデータベースに「処理済」という名前の列に変更が挿入されます。処理されていない0が1に変更され、処理されます。私が参照しているテーブルには、formid、フルネーム、部門、その他の仕事に関連するもののほか、管理者がレビュー対象の保留中のフォームがあるかどうかを確認できる「処理済」カラムなどがあります。SQL - 既存の行を変更する
私の問題は、実際にMySQLが適切な行を見つけて、すべてのセルを再度挿入する必要なしに、0から1までの名前の「処理済み」のセルだけを変更することを実際にどのように許可するか分かりません。ここで私は今まで試みているものです:
$id = $_SESSION[id];
$fullname = $_SESSION[fullname];
$teamformid = $_SESSION[teamformid];
if (isset($_POST['approved'])) {
$sql = "INSERT INTO carforms (processed) where aboveid='$id' and processed='0' and teamformid=$teamformid
VALUES ('0')";
}
else if (isset($_POST['disapproved'])) {
//todo
}
私は私が望む特定の行を検索し、処理され、1つの列のみを変更するためにSQLを伝えるにはどうすればよいですか?
また、INSERT INTOコマンドを使用するときは、必ずすべての列名を入力する必要がありますか?
ありがとうございます。
は、表に挿入 '... INSERTで(COL1、CO2)VALUES(val1と、VAL2)' – techspider
た場合に列を指定することをお勧めします挿入するのではなく更新する行がすでに存在しています。 http://dev.mysql.com/doc/refman/5.7/en/update.html – chris85