Трябва само да направите добра MySQL заявка.
Вижте тук .
Можете да правите добавяния, изваждания и неща като date BETWEEN x AND Y
, можете да направите SELECT SUM()
с GROUP BY
и така нататък.
Това, което Хакан има предвид (предполагам), е, че го правите по грешен начин:първо трябва да направите заявка, която прави почти цялата работа вместо вас. Няма нужда да разработвате толкова сложно нещо.
И три други съвета:
- опитайте се да избягвате ключови думи в Php като
$expense->Date
. Това създава проблеми с подчертаването на синтаксиса (в най-добрия в най-лошия случай Php няма да разбере вашия код). - добавете още коментари в кода си, за да обясните какво се опитвате да направите.
- опитайте се да избягвате ключови думи в Php И 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'