Replaced multiple individual queries in Dashboard controller with consolidated methods for setup counts and country statistics. Added getAllSetupCounts to Setup_model and get_countries_statistics_consolidated to Logbook_model to improve performance and reduce database load.
48 行
1.3 KiB
PHP
48 行
1.3 KiB
PHP
<?php
|
|
|
|
class Setup_model extends CI_Model {
|
|
|
|
function getCountryCount() {
|
|
$sql = 'select count(*) as count from dxcc_entities';
|
|
$query = $this->db->query($sql);
|
|
|
|
return $query->row()->count;
|
|
}
|
|
|
|
function getLogbookCount() {
|
|
$userid = xss_clean($this->session->userdata('user_id'));
|
|
$sql = 'select count(*) as count from station_logbooks where user_id =' . $userid;
|
|
$query = $this->db->query($sql);
|
|
|
|
return $query->row()->count;
|
|
}
|
|
|
|
function getLocationCount() {
|
|
$userid = xss_clean($this->session->userdata('user_id'));
|
|
$sql = 'select count(*) as count from station_profile where user_id =' . $userid;
|
|
$query = $this->db->query($sql);
|
|
|
|
return $query->row()->count;
|
|
}
|
|
|
|
// Consolidated method to get all setup counts in one query
|
|
function getAllSetupCounts() {
|
|
$userid = xss_clean($this->session->userdata('user_id'));
|
|
|
|
$sql = "SELECT
|
|
(SELECT COUNT(*) FROM dxcc_entities) as country_count,
|
|
(SELECT COUNT(*) FROM station_logbooks WHERE user_id = {$userid}) as logbook_count,
|
|
(SELECT COUNT(*) FROM station_profile WHERE user_id = {$userid}) as location_count";
|
|
|
|
$query = $this->db->query($sql);
|
|
$row = $query->row();
|
|
|
|
return array(
|
|
'country_count' => $row->country_count,
|
|
'logbook_count' => $row->logbook_count,
|
|
'location_count' => $row->location_count
|
|
);
|
|
}
|
|
}
|
|
|
|
?>
|