Musisz tylko wykonać dobre zapytanie MySQL.
Zobacz tutaj .
Możesz robić dodawanie, odejmowanie i takie rzeczy jak date BETWEEN x AND Y
, możesz wykonać SELECT SUM()
z GROUP BY
i tak dalej.
Hakan ma na myśli (chyba) to, że robisz to w niewłaściwy sposób:powinieneś najpierw wykonać zapytanie, które wykona prawie całą pracę za ciebie. Nie ma potrzeby opracowywania tak skomplikowanych rzeczy.
I trzy inne rady:
- staraj się unikać słów kluczowych w PHP, takich jak
$expense->Date
. To sprawia, że problemy z podświetlaniem składni są najlepsze przypadku, w najgorszym PHP nie zrozumie Twojego kodu). - dodaj więcej komentarzy w swoim kodzie, aby wyjaśnić, co próbujesz zrobić.
- staraj się unikać słów kluczowych w PHP ORAZ Zapytania SQL. Masz kolumnę o nazwie „
Date
' i kolumnę o nazwie 'Type
„. To nie jest bezpieczne.
Oto tylko początek tego, jak może wyglądać Twój SQL i powinien on obejmować prawie 95% Twojego kodu. Uwaga:to jest sugestia:pozwól, aby cały serwer bazy danych wykonał tę pracę za Ciebie, to jest do tego stworzone:
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'