Opencart を使用していますが、基本的に同じものであるこれらの関数がモデル ファイルに含まれています。これを行うより良い方法はありますか?コード行を繰り返し続けるのは無駄のように思えますが、これを処理する適切な方法が何であるかはわかりません。これらのステートメントを何らかの方法で組み合わせることができますか? それはこれを行う適切な方法ですか?私の PHP スキルは十分ではありません。ここでアドバイスをいただければ幸いです。機能はこちら
public function getSum() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row;
}
public function lastThirty() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 1 MONTH)" );
return $query->row;
}
public function lastYearNow() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row; //will be giving this time last year, not figured out yet.
}
public function lastYearTotal() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 1 MONTH)" );
return $query->row; //will be total for last last year, not figured out yet.
}
4 つの関数の代わりに 1 つの関数を使用し、動的な値 (月) のパラメーターを使用することができます。したがって、メソッドは次のようになります。
public function getSum($month = 12) {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL " . $month . " MONTH) ");
return $query->row;
}
そして、このメソッドを呼び出している間、必要な月数分の結果を渡すことができます。さもなければ、12 か月分の結果が表示されます。これがあなたを助けることを願っています。
注 : これらのメソッドには少量のコードが含まれており、機能上、異なる操作を行うには異なるメソッドが必要になる可能性があるため、これらすべてのメソッドを保持することをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加