良いMySQLクエリを実行するだけで済みます。
こちら をご覧ください。 。
足し算、引き算、date BETWEEN x AND Y
などを行うことができます 、SELECT SUM()
を実行できます GROUP BY
など。
Hakanが意味するのは(私が思うに)あなたがそれを間違った方法でやっているということです:あなたは最初にあなたのためにほとんどすべての仕事をするクエリをするべきです。そのような複雑なものを開発する必要はありません。
そして他の3つのアドバイス:
-
$expense->Date
のようなPHPのキーワードは避けてください 。これにより、構文の強調表示の問題が発生します(最高の 場合、最悪 Phpはあなたのコードを理解しません。 - コードにコメントを追加して、何をしようとしているのかを説明します。
- PHP ANDのキーワードは避けてください SQLクエリ。 '
Date
という名前の列があります 'および'Type
という名前の列 '。これは安全ではありません。
これは、SQLがどのように見えるかのほんの始まりに過ぎず、コードの95%をほぼカバーしているはずです。注:これは提案です。すべてのデータベースサーバーに任せてください。これはそのために行われます:
SELECT
ps.Due,ps.Date,
wt.Amount,wt.Date,
ex.Amount,ex.Date
LEFT JOIN patient_sessions ps
ON xxx
WHERE ps.Type='Session'
AND ps.Date
BETWEEN DATE_ADD(NOW(), INTERVAL '-28' DAY)
AND DATE_ADD(NOW(), INTERVAL 1 DAY)
LEFT JOIN work_times wt
ON xxx
LEFT JOIN expenses ex
ON xxx
WHERE ex.Client='Psychotherapy'