Welcome Guest, Not a member yet? Register   Sign In
Joining Multiple Queries into 1
#1

[eluser]CI_Newb[/eluser]
I have a submenu item in my application that does some really simple queries to display the total rows for 6 different items.

All query the same db with slight changes.
Model
Code:
<?php
class Sub_model extends Model
{
    function user_stats_today()
    {
        $cur_date = date ('Y-m-d');
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->where('date', $cur_date);
        $data = $this->db->get('my_db');
        return $data;
    }
    
    function user_stats_yesterday()
    {
        $yesterday = date ("Y-m-d", time() -86400);
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->where('date', $yesterday);
        $data = $this->db->get('my_db');
        return $data;
    }
    
    function user_stats_resolved()
    {
        $cur_date = date ('Y-m-d');
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->where('date', $cur_date);
        $this->db->where('resolution', 'Resolved');
        $data = $this->db->get('my_db');
        return $data;
    }
    
    function user_stats_dispatched()
    {
        $cur_date = date ('Y-m-d');
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->where('date', $cur_date);
        $this->db->where('resolution', 'Dispatched');
        $data = $this->db->get('my_db');
        return $data;
    }
    
    function user_stats_abandons()
    {
        $cur_date = date ('Y-m-d');
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->where('date', $cur_date);
        $this->db->where('level1', 'Abandon');
        $data = $this->db->get('my_db');
        return $data;
    }
    
    function user_stats_month()
    {
        $year_month = date ('Y-m');
        $this->db->select('date');
        $this->db->where('username', $this->session->userdata('username'));                
        $this->db->like('date', $year_month);
        $data = $this->db->get('my_db');
        return $data;
    }
}

Controller
Code:
function index()
    {    
        $data = array();
        $data['us_today'] = $this->sub_model->user_stats_today();
        $data['us_yesterday'] = $this->sub_model->user_stats_yesterday();
        $data['us_resolved'] = $this->sub_model->user_stats_resolved();
        $data['us_dispatched'] = $this->sub_model->user_stats_dispatched();
        $data['us_abandons'] = $this->sub_model->user_stats_abandons();
        $data['us_month'] = $this->sub_model->user_stats_month();
        $this->load->view(submenu_view, $data);
    }

View
Code:
<b>Today</b> &lt;?php echo $us_today->num_rows(); ?&gt;
<br>
<b>Resolved</b> &lt;?php echo $us_resolved->num_rows(); ?&gt;
<br>
<b>Dispatched</b> &lt;?php echo $us_dispatched->num_rows(); ?&gt;
<br>
<b>Abandons</b> &lt;?php echo $us_abandons->num_rows(); ?&gt;
<br>
<b>Yesterday</b> &lt;?php echo $us_yesterday->num_rows(); ?&gt;
<br>
<b>&lt;?php echo $cur_month_name; ?&gt;</b> &lt;?php echo $us_month->num_rows(); ?&gt;

This looks sloppy and overdone. How can I better optimize the code and queries?


Messages In This Thread
Joining Multiple Queries into 1 - by El Forum - 10-13-2010, 12:39 AM
Joining Multiple Queries into 1 - by El Forum - 10-13-2010, 01:32 AM
Joining Multiple Queries into 1 - by El Forum - 10-13-2010, 03:02 AM
Joining Multiple Queries into 1 - by El Forum - 10-15-2010, 02:21 AM
Joining Multiple Queries into 1 - by El Forum - 10-15-2010, 11:51 AM
Joining Multiple Queries into 1 - by El Forum - 10-15-2010, 02:21 PM
Joining Multiple Queries into 1 - by El Forum - 10-18-2010, 01:42 AM



Theme © iAndrew 2016 - Forum software by © MyBB