Du behøver kun at lave en god MySQL-forespørgsel.
Se her .
Du kan foretage additioner, subtraktioner og ting som f.eks. date BETWEEN x AND Y
, kan du lave en SELECT SUM()
med en GROUP BY
og så videre.
Hvad Hakan mener (jeg gætter på) er, at du gør det på den forkerte måde:du skal først lave en forespørgsel, der gør næsten alt arbejdet for dig. Ingen grund til at udvikle en så kompleks ting.
Og tre andre råd:
- prøv at undgå søgeord i Php som
$expense->Date
. Dette gør syntaksfremhævning problemer (i det bedste). i det værste tilfælde Php forstår ikke din kode). - tilføj flere kommentarer i din kode for at forklare, hvad du prøver at gøre.
- prøv at undgå søgeord i Php AND SQL-forespørgsler. Du har en kolonne med navnet '
Date
' og en kolonne med navnet 'Type
'. Dette er ikke sikkert.
Her er kun en begyndelse på, hvordan din SQL kunne se ud, og den burde næsten dække 95% af din kode. Bemærk:dette er et forslag:lad alle databaseservere gøre arbejdet for dig, dette er lavet til det:
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'