Sie müssen nur eine gute MySQL-Abfrage durchführen.
Siehe hier .
Sie können Additionen, Subtraktionen und Dinge wie date BETWEEN x AND Y
ausführen , können Sie eine SELECT SUM()
ausführen mit einem GROUP BY
und so weiter.
Was Hakan meint (glaube ich), ist, dass Sie es falsch machen:Sie sollten zuerst eine Abfrage machen, die Ihnen fast die ganze Arbeit abnimmt. Keine Notwendigkeit, so komplexe Dinge zu entwickeln.
Und drei weitere Ratschläge:
- Vermeiden Sie Schlüsselwörter in Php wie
$expense->Date
. Dies führt zu Syntaxhervorhebungsproblemen (im besten im schlechtesten Fall Php versteht Ihren Code nicht). - Fügen Sie Ihrem Code weitere Kommentare hinzu, um zu erklären, was Sie zu tun versuchen.
- Versuchen Sie Schlüsselwörter in Php UND zu vermeiden SQL-Abfragen. Sie haben eine Spalte mit dem Namen "
Date
". ' und eine Spalte namens 'Type
'. Das ist nicht sicher.
Hier ist nur ein Anfang davon, wie Ihr SQL aussehen könnte, und es sollte fast 95 % Ihres Codes abdecken. Hinweis:Dies ist ein Vorschlag:Lassen Sie alle Datenbankserver die Arbeit für Sie erledigen, das ist dafür gemacht:
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'