Du behöver bara göra en bra MySQL-fråga.
Se här .
Du kan göra tillägg, subtraktioner och saker som date BETWEEN x AND Y
, kan du göra en SELECT SUM()
med en GROUP BY
och så vidare.
Vad Hakan menar (tror jag) är att du gör det på fel sätt:du bör först göra en fråga som gör nästan allt arbete åt dig. Inget behov av att utveckla en så komplex sak.
Och tre andra råd:
- försök att undvika nyckelord i Php som
$expense->Date
. Detta gör syntaxmarkeringsproblem (i bäst). i det värsta Php kommer inte att förstå din kod). - lägg till fler kommentarer i koden för att förklara vad du försöker göra.
- försök att undvika sökord i Php OCH SQL-frågor. Du har en kolumn som heter '
Date
' och en kolumn med namnet 'Type
'. Detta är inte säkert.
Här är bara en början på hur din SQL kan se ut, och den borde nästan täcka 95 % av din kod. Notera:detta är ett förslag:låt alla databasservrar göra jobbet åt dig, detta är gjort för 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'