2012-07-02 2 views
0

테이블 user_instance이 있습니다. 이 필드에는 account_id, instance_name, host_name의 세 필드가 있습니다.
예를 들어 레코드는 다음과 같습니다.배열 mysql의 목록에서 특정 레코드 업데이트

account_id  instance_name  host_name 
------------------------------------------ 
    1   instance_name1  localhost 
    1   instance_name1  % 
    1   instance_name2  localhost 
    2   instance_name1  localhost 

그리고 나는 텍스트 상자의 배열에 instance_name과 host_name을 얻고 있습니다.

$result=mysql_query("SELECT user_instance.instance_name, user_instance.host_name FROM 
dba_account, user_instance WHERE dba_account.account_id = user_instance.account_id AND 
dba_account.account_id = '1'"); 

while($note = mysql_fetch_array($result)) 
{ 
<inut type='text' name='instance_name' class='instance_name' disabled='disabled' 
value='$note[instance_name]' size='25' /> 
<input type='text' name='host_name' class='host_name' disabled='disabled' 
value='$note[host_name]' size='25' /> 
} 

업데이트 버튼을 클릭하면 변경된 특정 레코드가 업데이트됩니다. 예를 들어, instance_name instance_name1 또는 account_name1의 host_name localhost을 변경하면 해당 레코드를 업데이트해야합니다. 어떤 도움을 주셔서 감사합니다.

+0

특정 레코드를 선택하기에 적합한 조건을 사용하십시오. – triclosan

+0

PHP의 'ext/mysql' (mysql_ * 제품군)은 [더 이상 사용되지 않습니다.] (http://www.php.net/manual/en/faq.databases.php # faq.databases.mysql.deprecated). 대신 [다른 것] (http://www.php.net/manual/en/mysqlinfo.api.choosing.php)을 사용하십시오. – pilcrow

답변

0

UPDATE 명령을 실행하지 마십시오.

+0

instance_name'instance_name1'을 account_id'1'의 instance_name5로 업데이트한다고 가정 해 봅시다. 나는이 UPDAT qurey를 시도했다 : UPDATE user_instance SET instance_name = '$ _POST ['instance_name ']'where account_id = '1'; '그러나 문제는 account_id에'1 '이 instance_name에 여러 개의 레코드를 가지고있다. 특정 레코드 하나만 업데이트하려면 어떻게해야합니까? – ashah142

+0

테이블에는 각 레코드에 대해 고유 한 ID가 있어야합니다. 따라서 주문 번호 나 성질이 있다면 표에 포함시켜야합니다. 그렇지 않으면 where account_id = 1 AND instance_name = 'name'을 사용할 수 있습니다. 검색 범위를 좁히려면 각 행 (EX : 주문 번호)에 고유 한 레코드 ID가 있어야합니다. 여러 테이블을 사용할 수있는 모든 것을 담기 위해 1 개의 테이블을 사용하는 것처럼 들립니다. SQL에 익숙하지 않은 경우 www.sqlcourse.com으로 이동하면 특정 업데이트를 수행하는 방법을 여러모로 안내합니다. –