cleanup and consolidate db code
This commit is contained in:
+16
-17
@@ -140,20 +140,25 @@ function get_label($record, $sort_by, $date=null) {
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetch_species_array($sort_by, $date=null) {
|
function get_db() {
|
||||||
if (!isset($_db)) {
|
if (!isset($_db)) {
|
||||||
$_db = new SQLite3('./scripts/birds.db', SQLITE3_OPEN_READONLY);
|
$_db = new SQLite3('./scripts/birds.db', SQLITE3_OPEN_READONLY);
|
||||||
$_db->busyTimeout(1000);
|
$_db->busyTimeout(1000);
|
||||||
}
|
}
|
||||||
|
return $_db;
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetch_species_array($sort_by, $date=null) {
|
||||||
|
$db = get_db();
|
||||||
$where = (isset($date)) ? "WHERE Date == \"$date\"" : "";
|
$where = (isset($date)) ? "WHERE Date == \"$date\"" : "";
|
||||||
if ($sort_by === "occurrences") {
|
if ($sort_by === "occurrences") {
|
||||||
$statement = $_db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY COUNT(*) DESC");
|
$statement = $db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY COUNT(*) DESC");
|
||||||
} elseif ($sort_by === "confidence") {
|
} elseif ($sort_by === "confidence") {
|
||||||
$statement = $_db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY MAX(Confidence) DESC");
|
$statement = $db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY MAX(Confidence) DESC");
|
||||||
} elseif ($sort_by === "date") {
|
} elseif ($sort_by === "date") {
|
||||||
$statement = $_db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY MIN(Date) DESC, Time DESC");
|
$statement = $db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY MIN(Date) DESC, Time DESC");
|
||||||
} else {
|
} else {
|
||||||
$statement = $_db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY Com_Name ASC");
|
$statement = $db->prepare("SELECT Date, Time, File_Name, Com_Name, Sci_Name, COUNT(*) as Count, MAX(Confidence) as MaxConfidence FROM detections $where GROUP BY Sci_Name ORDER BY Com_Name ASC");
|
||||||
}
|
}
|
||||||
ensure_db_ok($statement);
|
ensure_db_ok($statement);
|
||||||
$result = $statement->execute();
|
$result = $statement->execute();
|
||||||
@@ -161,29 +166,23 @@ function fetch_species_array($sort_by, $date=null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fetch_best_detection($com_name) {
|
function fetch_best_detection($com_name) {
|
||||||
if (!isset($_db)) {
|
$db = get_db();
|
||||||
$_db = new SQLite3('./scripts/birds.db', SQLITE3_OPEN_READONLY);
|
$statement = $db->prepare("SELECT Com_Name, Sci_Name, COUNT(*), MAX(Confidence), File_Name, Date, Time from detections WHERE Com_Name = \"$com_name\"");
|
||||||
$_db->busyTimeout(1000);
|
|
||||||
}
|
|
||||||
$statement = $_db->prepare("SELECT Com_Name, Sci_Name, COUNT(*), MAX(Confidence), File_Name, Date, Time from detections WHERE Com_Name = \"$com_name\"");
|
|
||||||
ensure_db_ok($statement);
|
ensure_db_ok($statement);
|
||||||
$result = $statement->execute();
|
$result = $statement->execute();
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetch_all_detections($sci_name, $sort_by, $date=null) {
|
function fetch_all_detections($sci_name, $sort_by, $date=null) {
|
||||||
if (!isset($_db)) {
|
$db = get_db();
|
||||||
$_db = new SQLite3('./scripts/birds.db', SQLITE3_OPEN_READONLY);
|
|
||||||
$_db->busyTimeout(1000);
|
|
||||||
}
|
|
||||||
$filter = (isset($date)) ? "AND Date == \"$date\"" : "";
|
$filter = (isset($date)) ? "AND Date == \"$date\"" : "";
|
||||||
if ($sort_by === "occurrences") {
|
if ($sort_by === "occurrences") {
|
||||||
$statement = $_db->prepare("SELECT * FROM detections WHERE Sci_Name == \"$sci_name\" $filter ORDER BY COUNT(*) DESC");
|
$statement = $db->prepare("SELECT * FROM detections WHERE Sci_Name == \"$sci_name\" $filter ORDER BY COUNT(*) DESC");
|
||||||
} elseif ($sort_by === "confidence") {
|
} elseif ($sort_by === "confidence") {
|
||||||
$statement = $_db->prepare("SELECT * FROM detections WHERE Sci_Name == \"$sci_name\" $filter ORDER BY Confidence DESC");
|
$statement = $db->prepare("SELECT * FROM detections WHERE Sci_Name == \"$sci_name\" $filter ORDER BY Confidence DESC");
|
||||||
} else {
|
} else {
|
||||||
$order = (isset($date)) ? "Time DESC" : "Date DESC, Time DESC";
|
$order = (isset($date)) ? "Time DESC" : "Date DESC, Time DESC";
|
||||||
$statement = $_db->prepare("SELECT * FROM detections where Sci_Name == \"$sci_name\" $filter ORDER BY $order");
|
$statement = $db->prepare("SELECT * FROM detections where Sci_Name == \"$sci_name\" $filter ORDER BY $order");
|
||||||
}
|
}
|
||||||
ensure_db_ok($statement);
|
ensure_db_ok($statement);
|
||||||
$result = $statement->execute();
|
$result = $statement->execute();
|
||||||
|
|||||||
Reference in New Issue
Block a user