2013-03-07 2 views
0

필자가 작성하지 않은 일부 PHP를 편집해야합니다. 대부분 완료되었지만 올바른 구문을 이해할 수 없습니다.PHP SQLBuilder를 사용하여 여러 행 업데이트

기본적으로 Google 퓨전 테이블의 데이터를 가져 와서 테이블을 채우는 경우 테이블의 데이터를 수정 한 후에는 동일한 테이블의 프로덕션 버전으로 해당 정보를 업데이트 할 수 있습니다. 업데이트 쿼리 중 하나는 다음과 같습니다

if($table_row[12]=="New"){ 
    $tableid1 = '1bsSleKDBdkhQZfn-oADx0tUtoOc32RqIyiX05Bo'; 
$insertresults = $ftclient->query(SQLBuilder::insert($tableid1, 
    array('SUBURB'=> $table_row[1], 
    'ROAD_NAME' => $table_row[2], 
    'DESCRIPTION' => $table_row[3], 
    'DIRECTION' => $table_row[4], 
    'STATUS' => $table_row[5], 
    'SITE_ID' => $table_row[6], 
    'COMMON_NAME' => $table_row[7], 
    'Lat' => $table_row[8], 
    'Long' => $table_row[9], 
     'OPERATING_DAY' => $table_row[10], 
    'OPERATING_HOURS' => $table_row[11], 
    'Version' => "current"))); 
    $insertresults = explode("\n", $insertresults); 
    $rowid1 = $insertresults[1]; 
    $updateresults = $ftclient->query(SQLBuilder::update($tableid, 
    array('SUBURB'=> $table_row[1], 
    'ROAD_NAME' => $table_row[2], 
    'DESCRIPTION' => $table_row[3], 
    'DIRECTION' => $table_row[4], 
    'STATUS' => $table_row[5], 
    'SITE_ID' => $table_row[6], 
    'COMMON_NAME' => $table_row[7], 
    'Lat' => $table_row[8], 
    'Long' => $table_row[9], 
     'OPERATING_DAY' => $table_row[10], 
    'OPERATING_HOURS' => $table_row[11], 
    'Version' => "current", 
    'Edited_By' => $table_row[13], 
    'Date_Edited' => $table_row[14]),$table_row[0])); 
    $updateresults = explode("\n", $updateresults); 
    $rowid2 = $updateresults[1]; 
    } 

내가 교외 그들 중 하나 (즉, 경우에 변경 될 때 같은 SITE_ID와 모든 레코드를 업데이트합니다 SQLBuilder 쿼리의 유사한 유형을 작성하기 만하면됩니다 레코드가 SUBURB 시드니, SITE_ID 1, SITE_ID가 1 인 레코드는 SUBURB 값이 시드니에서 멜버른으로 바뀌면 변경해야합니다. 이 구문 론적 표현 방법을 정확히 모르거나 SQLBuilder를 사용하여 쿼리를 작성하는 방법을 모릅니다. 어떤 도움을 주시면 감사하겠습니다!

답변

0

SQLBuilder는 분명히 로컬에 포함 된 클래스입니다. where 문을 코딩하는 방법을 보려면 해당 설명서 나 업데이트 메소드 자체를 살펴 봐야합니다.

이의 SQL은 다음과 같습니다

"UPDATE tableid SET SUBURB = '{$table_row[1]}' WHERE SITE_ID = '{$table_row[6]}'" 

당신이 그것을 할 것 순수한 SQL을 실행할 수있는 경우. 그렇지 않으면 클래스 라이브러리가 필요합니다.

+0

아, 퓨전 테이블의 도우미 클래스 인 것으로 보입니다. 문법적으로 도와 주실 수 있나요? 내가 원하는 것 (SUBURB가 변경된 경우 SITE_ID가 변경된 행의 SITE_ID와 동일한 모든 레코드를 업데이트하는 경우)로 구문을 변경하는 방법과 같이 ... 나는 그것을 수행하는 방법을 생각할 수 없습니다. –

+0

처음에 SUBURB 값을 변경하려는 특정 레코드를 어떻게 식별하고 있습니까? –

+0

테이블이 표시되고 레코드를 업데이트하면 '버전'필드가 자동으로 "업데이트"로 업데이트됩니다 (if 문은'if ($ table_row [12] == "Update")', 그래서 내가 믿는 교외를 변경하고 싶을 때 (SUBURB 값을 변경하자마자 버전이 "Update"로 바뀌어 특정 레코드를 업데이트한다는 의미입니다. –