2011-01-18 21 views
0

複数のレコードを1つのフォームで更新する必要がありますが、処理の方法がわかりません。以下は、元のデータベースにフィールドを挿入するために使用しているコードです。複数のレコードをMYSQLの1つのフォームで更新する

$case = date(ymdHis); 

//register into database 
if (!empty($p1_firstname)) mysql_query ("INSERT INTO cases VALUES ('$case','$date_booked','$p1_firstname','$p1_lastname ''$city’)"); 

if (!empty($p2_firstname)) $register_case = mysql_query ("INSERT INTO cases VALUES ('$case','$date_booked','$p2_firstname','$p2_lastname','$city’)"); 

私は、「ケース」ごとに多くのレコードのデータを表示する更新フォームを用意しています。各行が同じ識別子($ case)を持つ場合、UPDATEを使用して異なる行の情報を編集するにはどうすればよいですか?

+2

行に固有の識別子がありませんか? –

+0

はい自動インクリメントIDがありますが、特定のレコードを選択すると、複数の行を取得するためにケース番号で選択します – Mike

答えて

0

あなたはしません。実際のところでデータベースを再編成し、そこから進んでください。

0

データベースを正規化した後、各レコードには更新クエリに使用できる一意の識別子が割り当てられます。

現在のスクリプトもsql injectionです。あなたは決してユーザーの入力を信用すべきではありません。

0
UPDATE cases 
SET column1 = CASE column_id WHEN 0 then 'valueColumn1forRegisterId0' 
          WHEN 1 then 'valueColumn1forRegisterId1' 
          WHEN 2 then 'valueColumn1forRegisterId2' 
          ELSE column1 END, 
    column2 = CASE column_id WHEN 0 then 'valueColumn2forRegisterId0' 
          WHEN 1 then 'valueColumn2forRegisterId1' 
          WHEN 2 then 'valueColumn2forRegisterId2' 
          ELSE column2 END; 
関連する問題