better image counting

This commit is contained in:
Shish 2017-09-21 05:49:10 +01:00
parent 2628c2c5d9
commit 6aa704d04c

View File

@ -232,20 +232,21 @@ class Image {
if($tag_count === 0) { if($tag_count === 0) {
$total = $database->cache->get("image-count"); $total = $database->cache->get("image-count");
if(!$total) { if(!$total) {
$total = $database->get_one("SELECT COUNT(*) FROM images") || 0; $total = $database->get_one("SELECT COUNT(*) FROM images");
$database->cache->set("image-count", $total, 600); $database->cache->set("image-count", $total, 600);
} }
return $total;
} }
else if($tag_count === 1 && !preg_match("/[:=><\*\?]/", $tags[0])) { else if($tag_count === 1 && !preg_match("/[:=><\*\?]/", $tags[0])) {
return $database->get_one( $total = $database->get_one(
$database->scoreql_to_sql("SELECT count FROM tags WHERE SCORE_STRNORM(tag) = SCORE_STRNORM(:tag)"), $database->scoreql_to_sql("SELECT count FROM tags WHERE SCORE_STRNORM(tag) = SCORE_STRNORM(:tag)"),
array("tag"=>$tags[0])) || 0; array("tag"=>$tags[0]));
} }
else { else {
$querylet = Image::build_search_querylet($tags); $querylet = Image::build_search_querylet($tags);
return $database->get_one("SELECT COUNT(*) AS cnt FROM ($querylet->sql) AS tbl", $querylet->variables) || 0; $total = $database->get_one("SELECT COUNT(*) AS cnt FROM ($querylet->sql) AS tbl", $querylet->variables);
} }
if(is_null($total)) return 0;
return $total;
} }
/** /**