2011-01-18 2 views
0

단일 레코드로 여러 레코드를 업데이트해야하지만 진행 방법을 잘 모르겠습니다. 다음은 원래 필드를 데이터베이스에 삽입하는 데 사용하는 코드입니다.MYSQL에서 하나의 양식으로 여러 레코드 업데이트

$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; 
관련 문제