Stačí udělat dobrý MySQL dotaz.
Viz zde .
Můžete provádět sčítání, odečítání a věci jako date BETWEEN x AND Y
, můžete provést SELECT SUM()
s GROUP BY
a tak dále.
Co Hakan znamená (myslím), že to děláte špatně:měli byste nejprve udělat dotaz, který udělá téměř veškerou práci za vás. Není třeba vyvíjet tak složitou věc.
A další tři rady:
- snažte se vyhnout klíčovým slovům v PHP jako
$expense->Date
. To způsobuje problémy se zvýrazňováním syntaxe (v nejlepším v nejhorším případě PHP vašemu kódu nerozumí). - přidejte do kódu další komentáře, které vysvětlí, co se snažíte udělat.
- snažte se vyhnout klíčovým slovům v PHP A SQL dotazy. Máte sloupec s názvem '
Date
a sloupec s názvem 'Type
'. To není bezpečné.
Zde je jen začátek toho, jak by vaše SQL mohlo vypadat, a téměř by mělo pokrývat 95 % vašeho kódu. Poznámka:toto je návrh:nechte všechny databázové servery, aby to udělaly za vás, toto je pro to stvořeno:
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'