U hoeft alleen een goede MySQL-query te doen.
Zie hier .
Je kunt optellen, aftrekken en dingen zoals date BETWEEN x AND Y
, kunt u een SELECT SUM()
. doen met een GROUP BY
enzovoort.
Wat Hakan bedoelt (denk ik) is dat je het op de verkeerde manier doet:je moet eerst een query doen die bijna al het werk voor je doet. Het is niet nodig om zo'n complex ding te ontwikkelen.
En drie andere adviezen:
- probeer trefwoorden in Php te vermijden zoals
$expense->Date
. Dit maakt syntaxis-accentuerende problemen (in de beste geval, in het ergste Php begrijpt je code niet). - voeg meer opmerkingen toe aan je code om uit te leggen wat je probeert te doen.
- probeer zoekwoorden in Php EN . te vermijden SQL-query's. Je hebt een kolom met de naam '
Date
' en een kolom met de naam 'Type
'. Dit is niet veilig.
Hier is slechts een begin van hoe uw SQL eruit zou kunnen zien, en het zou bijna 95% van uw code moeten beslaan. Let op:dit is een suggestie:laat alle databaseservers het werk voor je doen, dit is daarvoor gemaakt:
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'