2014-03-02 1 views
0

을 사용하여 데이터베이스에. 아래 코드는 $ seat 변수의 값으로 작업 영역 값을 줄이는 대신 0을 반환합니다.

$update_seats = update_places($id); 

    function update_places($id) { 
     global $modx; 
     $table = "`database_name`.`table_name`"; 
     $update_seats = '`places`' - $seats; 
     $result = $modx->db->update('`places` = ' . $update_seats, $table, '`id` = "' . $id . '" AND `places` > 0'); 
     return $result;   // Returns 'true' on success, 'false' on failure. 

}

내 구문을 정정에 어떤 도움이 크게 감사합니다. 더 정확한 것으로

function update_places($id, $seats)

을하고도 $update_seats = update_places($id, 123);

를 호출, 쿼리를 변경합니다 :

+0

난'$ update_seats = '\'places \''- $ seats;': $ update_seats = '\'places \'-'를 변경해야한다고 생각합니다. $ seatats;' – Seb33300

+0

$ modx 변수는 무엇입니까? $ 좌석을 정의하지 않은 것 같습니다. –

+0

안녕하세요 Seb33300 - 도와 주셔서 감사합니다. 다음과 같은 오류 메시지와 함께 당신의 제안을 시도했습니다 : 'SQL> UPDATE'database_name'.' 테이블 이름'SET'places' ='places' - ($ 좌석 값은 여기에 있어야합니다) WHERE'id' = "1104" AND'places'> 0' $ seat 변수의 값을 보내지 않습니다. 그것은 기능 밖의 페이지 위로 더 멀리 선언됩니다. – Twobears

답변

0

$seats 변수가 함수 내에서 정의되지, 당신은 사용할 필요가

$result = $modx->db->update('`places` = ' . $update_seats, $table, '`id` = ' . intval($id, 10) . ' AND `places` >= ' . $seats); 
+0

안녕하세요 Lashane - 완벽하게 일했습니다. 많은 도움을 주셔서 감사합니다. – Twobears