0

テーブル FINE に必要な値を持つ行が存在する場合は、フィールドを更新するだけです。それ以外の場合は、テーブルに新しい行を追加します。

if (mysql_query("SELECT EXISTS(SELECT * FROM fines WHERE SId='$sid' AND Semester='$sem')")>=1)

 mysql_query("UPDATE fines SET fines.TFine=fines.TFine+'$fine' WHERE SId='$sid' AND Semester='$sem'");           

そうしないと

   mysql_query("INSERT INTO fines(SId, Semester, TFine, Flag) VAlUES('$sid','$sem', '$fine', 0)");

しかし、if条件が機能していません!! 助けてください

4

1 に答える 1

1

INSERT ... ON DUPLICATE KEY UPDATEレコードが既に存在する場合はレコードを更新し、存在しない場合は挿入する MySQL を使用します。

unique最初に行う必要があるのは、1 つまたは複数の列に制約を指定することです。

ALTER TABLE fines ADD CONSTRAINT tb_uq UNIQUE (SId, Semester)

ステートメントを実行したら、次のようなステートメントを簡単に作成できます。

INSERT INTO fines(SId, Semester, TFine, Flag) 
VALUES ('$sid','$sem', '$fine', 0)
ON DUPLICATE KEY UPDATE TFine = TFine +  '$fine';
于 2013-03-24T11:49:31.090 に答える