summaryrefslogtreecommitdiffstats
path: root/library/Pbs/Filter.php
diff options
context:
space:
mode:
authorSimon2011-03-29 14:32:22 +0200
committerSimon2011-03-29 14:32:22 +0200
commitca2d0af951b7914a1c48a3b3ec8d57a537729ead (patch)
tree377df8674ed36fba3dd1a9d169f102d7233a5564 /library/Pbs/Filter.php
parentFehler geändert (diff)
downloadpbs2-ca2d0af951b7914a1c48a3b3ec8d57a537729ead.tar.gz
pbs2-ca2d0af951b7914a1c48a3b3ec8d57a537729ead.tar.xz
pbs2-ca2d0af951b7914a1c48a3b3ec8d57a537729ead.zip
Leere Filter (Filter ohne Filterentry) werden nun auch berücksichtigt
Diffstat (limited to 'library/Pbs/Filter.php')
-rw-r--r--library/Pbs/Filter.php13
1 files changed, 10 insertions, 3 deletions
diff --git a/library/Pbs/Filter.php b/library/Pbs/Filter.php
index 81ec205..dea61e4 100644
--- a/library/Pbs/Filter.php
+++ b/library/Pbs/Filter.php
@@ -346,6 +346,7 @@ class Pbs_Filter{
if($debuglevel >= 3)
print_a('date',$result,$set[$filtertypID]);
########################################
+ $result = array();
// ErgebnisSet auswerten
if($debuglevel >= 2)
print_a('the result sets of the filtertypes',$set);
@@ -365,20 +366,26 @@ class Pbs_Filter{
print_a('Übereinstimmungen pro Filter',$a);
// Get the number of filtertypes every filter has
$stmt = $db->query(
- "SELECT filterID,SUM(num) as num FROM (
+ "SELECT f.filterID,SUM(num) as num FROM (
SELECT *, '1' as num
FROM pbs_filterentries
GROUP BY filterID, filtertypeID
- ) d GROUP BY d.filterID");
+ ) d RIGHT OUTER JOIN pbs_filter f ON d.filterID = f.filterID GROUP BY d.filterID");
$resultset = $stmt->fetchAll();
foreach($resultset as $d){
+ if($d['num'] == NULL){
+ $d['num'] = 0;
+ // write filter with empty filterrules in resultset
+ $result[] = $d['filterID'];
+ }
+
$database[$d['filterID']] = $d['num'];
}
if($debuglevel >= 2)
print_a('Anzahl Filterentries in Datenbank',$database);
// remove all filters from resultset, which to few filtertypes satisfied
- $result = array();
+
foreach($a as $i=>$b){
if($a[$i] < $database[$i]){
unset($a[$i]);