Você só precisa fazer uma boa consulta MySQL.
Veja aqui .
Você pode fazer adições, subtrações e coisas como
date BETWEEN x AND Y
, você pode fazer um SELECT SUM()
com um GROUP BY
e assim por diante. O que Hakan quer dizer (eu acho) é que você está fazendo isso da maneira errada:primeiro você deve fazer uma consulta que faça quase todo o trabalho para você. Não há necessidade de desenvolver uma coisa tão complexa.
E três outros conselhos:
- tente evitar palavras-chave em PHP como
$expense->Date
. Isso cria problemas de realce de sintaxe (no melhor caso, no pior Php não entenderá seu código). - adicione mais comentários em seu código para explicar o que você está tentando fazer.
- tente evitar palavras-chave em PHP E consultas SQL. Você tem uma coluna chamada '
Date
' e uma coluna chamada 'Type
'. Isso não é seguro.
Aqui está apenas um começo de como seu SQL pode ser, e quase deve cobrir 95% do seu código. Nota:esta é uma sugestão:deixe que todos os servidores de banco de dados façam o trabalho para você, isso é feito para isso:
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'