2014-07-04 2 views
0

MySQL 데이터베이스에서 total_excl 열의 합계를 반환 할 수있는 함수를 작성하고 싶습니다. 함수를 작성했지만 재사용 할 수는 없습니다.mysql 데이터를 가져 오기위한 재사용 가능 함수

올해 1/4 분기의 기능입니다.

public static function getFirstQuarterTotalExcl(){ 
    $first_day_of_1_quarter = date('Y-01-01'); 
    $last_day_of_1_quarter = date('Y-03-31'); 
    $query = "SELECT SUM(total_excl) FROM ".Zim_Properties::getTableName('Invoice')." WHERE invoice_date BETWEEN '$first_day_of_1_quarter' AND '$last_day_of_1_quarter'"; 
    $total = Zend_Registry::get('db')->fetchAll($query); 
    return round($total[0]["SUM(total_excl)"]); 
} 

올해 2 분기 두 번째 기능 :

public static function getSecondQuarterTotalExcl(){ 
    $first_day_of_2_quarter = date('Y-04-01'); 
    $last_day_of_2_quarter = date('Y-06-30'); 
    $query = "SELECT SUM(total_excl) FROM ".Zim_Properties::getTableName('Invoice')." WHERE invoice_date BETWEEN '$first_day_of_2_quarter' AND '$last_day_of_2_quarter'"; 
    $total = Zend_Registry::get('db')->fetchAll($query); 
    return round($total[0]["SUM(total_excl)"]); 
} 

당신이 볼 수 있듯이. 이 코드는 재사용 할 수 없기 때문에 올해의 분기마다 새로운 함수를 작성해야합니다. 나는 매 분기마다 하나의 기능을 만들고 싶다. 다시 사용할 수 있도록하려면 어떻게해야합니까?

+1

매개 변수로 날짜/분기를 보내고 하나 개의 기능을 사용할 수 있습니까? PHP의 날짜 함수를 사용하면 분기 수만 사용하여 시작일과 종료일을 쉽게 결정할 수 있습니다. – jeroen

답변

1

나는 함수를 작성했지만 재사용 할 수는 없다.

아니 당신이 여기에서 무엇을 의미하는지에 분명하지만 그냥이 같은 기능에 대한 인터페이스의 일부로서 날짜를 설정하는 방법에 대한 :

public static function getQuarterTotalExcl($first_day_of_quarter,$last_day_of_quarter){ 
    // $first_day_of_2_quarter = date('Y-04-01'); 
    // $last_day_of_2_quarter = date('Y-06-30'); 
    $query = "SELECT SUM(total_excl) FROM ".Zim_Properties::getTableName('Invoice')." WHERE invoice_date BETWEEN '$first_day_of_quarter' AND '$last_day_of_quarter'"; 
    $total = Zend_Registry::get('db')->fetchAll($query); 
    return round($total[0]["SUM(total_excl)"]); 
} 

그럼 그냥 같이 호출 :

$first_quarter_results = getQuarterTotalExcl(date('Y-01-01'), date('Y-03-31')); 
$second_quarter_results = getQuarterTotalExcl(date('Y-04-01'), date('Y-06-30')); 
$third_quarter_results = getQuarterTotalExcl(date('Y-07-01'), date('Y-09-30')); 
$fourth_quarter_results = getQuarterTotalExcl(date('Y-10-01'), date('Y-12-31')); 
1

매개 변수로 두 날짜를 일반 기능에 전달하십시오. 같은
뭔가 :

function getQuarterTotalExcl($day1, $day2) 
{ 
    $query = "SELECT SUM(total_excl) FROM ".Zim_Properties::getTableName('Invoice')." WHERE invoice_date BETWEEN '$day' AND '$day2'"; 
    $total = Zend_Registry::get('db')->fetchAll($query); 
    return round($total[0]["SUM(total_excl)"]); 
} 
관련 문제