Ich habe soetwas für einen meiner Kunden für die Ergebnisansicht in einem Vergleichsrechner realisiert. In puncto Herangehensweise gab es hier mehrere Ideen. Von der eigentlichen Idee her ähnelt es aber Deinem beschriebenen Vorhaben. Grundsätzlich wird die Filterung der Ergebnisse mit Ajax / Javascript umgesetzt. Zuerst wird ein Gesamtergebnis ermittelt. Anhand mehrerer Filter-Optionen kann der User aus diesem Ergebnis, je nach gewähltem Filter, auch nur eine Teilmenge anzeigen lassen. Die Filter sind als Radio Buttons aufgelistet und auch kombiniert auf das Ergebnis anwendbar.
Sobald der User eine Filteroption wählt, wird asynchron per Javascript eine PHP Datei aufgerufen, die das Gesamtergebnis nach gewähltem Filter auswertet und zurückgibt. Das zurückgegebene Ergebnis wird per Javascript in das vorhadene DOM eingebunden.
Du solltest Du eventuell auch Gedanken über das Thema
Cache machen. In meinem Fall wird das Gesamtergebnis zwischengespeichert. So wird das Gesamtergebnis nur einmal aus einer MySQL Datenbank ermittelt. Danach wird das zwischengespeicherte Ergebnis immer wieder durch die gewählten Filter durchlaufen. Anstatt bei jeder Filterung eine neue Datenbankabfrage auszuführen, wird das zwischengespeicherte Ergebnis immer wieder durchlaufen. In diesem Zusammenhang macht es eventuell auch Sinn sich den
FilterIterator anzusehen.
... und lies Dir auf jeden Fall das Tutorial vom Kropff durch.