0

私はphpに比較的慣れていません。次の問題があります。次のページがあるとします。

  • 2 つのフィールド x、y と 2 つのボタン (送信とクリア) を持つフォーム。
  • 編集と削除の 2 つのボタンがある x、y のデータベース レコードを表示するテーブル

フォームフィールドに値を入力してボタンを押すと、送信するとデータベースにデータが挿入されます。データは下の表に示されています。

テーブルで編集を押すと、選択したレコードのデータがフォームに入力されます。ここで、新しいレコードを挿入するだけでなく、レコードを更新するために提出したいと考えています。

どのように進めればよいですか?

ありがとう!!!

ジュゼッペ

4

3 に答える 3

1

更新と挿入を区別するために、フォームに隠しフィールドを追加する必要があります。

これを行う良い方法は、たとえば、主キーに has フィールドを配置することです

<input name="id" type="hidden" value="<?= $row['id']"/>

PHPコードの後、次のようなことができます

if(isset($_POST['id']) && $_POST['id'] != 0){
 // this is an update 
 $sql = "UPDATE ...."
 ...
} else {
 $sql = "INSERt ...";
 ...
}

挿入フォームの場合、非表示の入力を入れたり、値を0にしたりしないでください

于 2010-03-04T10:22:12.327 に答える
0
  1. 行に識別子を追加します: データベースの ID 列 (できれば UNSIGNED INTEGER)、テーブルにもあります (エントリの編集に使用する URL のクエリ文字列として使用できます)、および非表示の入力としてフォームで
  2. エントリを追加する場合は、非表示の入力が null またはゼロ (または有効な識別子にならないその他の値) に設定されていることを確認してください。
  3. フォームが送信されるたびに、識別子が null かそれ以外かをテストします
  4. 識別子が null の場合は、前と同じように追加します
  5. 識別子が null でない場合は、入力からの識別子で要素を更新します。
于 2010-03-04T10:21:23.327 に答える
0

まず、現在の編集の id を隠しフィールドやクエリ文字列などの場所に保存する必要があります。それが完了したら、update次のような新しいレコードを挿入するのではなく、ステートメントを使用してレコードを更新する必要があります。

// sql query
update tablename set fieldname = 'fieldvalue'......... and son

正確な回答を得るには、コードを表示する必要があります。

于 2010-03-04T10:21:07.910 に答える