如何在Codeigniter中计算结果


How to count results in Codeigniter?

我知道codeigniter's:

$ this -> db -> count_all (table_name);

,我也可以使用where条件和获取过滤的结果。但在我的情况下,我不知道如何实现这里在我的代码:

我要统计所有key="some-value"的经销商。

这是我对所有经销商的看法:

    <?php $this->load->view('admin/components/page_head') ?>
    <section class="container-fluid">
    <ul class="nav nav-pills">  <li class="active"> <h2><i class="glyphicon glyphicon-user"></i>&nbsp Resellers&nbsp<span class="badge"><?php echo $this->db->count_all('reseller');?></span></h2></li></ul>

    <h3>    <?php echo anchor('admin/reseller/add_reseller', '<i class="glyphicon glyphicon-plus"></i> Add a Reseller'); ?></h3>
        <table class="table table-primary">
            <thead>
                <tr>
                    <th>SIP Userid</th>
                    <th>SIP Password</th>
                    <th>Unique ID</th>
                    <th>Allocation Block</th>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Phone</th>
                    <th>Intial User Required</th>
                    <th>Location</th>
                    <th>Balance</th>
                    <th>Country</th>
                    <th>Country Code</th>   
                    <th>Status</th> 
                    <th>Edit</th>
                    <th>Delete</th>

                </tr>
            </thead>
            <tbody>
    <?php if(count($resellers)): foreach($resellers as $reseller): ?>   
            <tr>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'sip_username','<?php echo $reseller->id; ?>')" ><?php echo $reseller->sip_username; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'sip_password','<?php echo $reseller->id; ?>')" ><?php echo $reseller->sip_password; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'key','<?php echo $reseller->id; ?>')" ><?php echo $reseller->key; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'allocation_block','<?php echo $reseller->id; ?>')" ><?php echo $reseller->allocation_block; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'name','<?php echo $reseller->id; ?>')" ><?php echo $reseller->name; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'email','<?php echo $reseller->id; ?>')" ><?php echo $reseller->email; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'phone','<?php echo $reseller->id; ?>')" ><?php echo $reseller->phone; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'user_num','<?php echo $reseller->id; ?>')" ><?php echo $reseller->user_num; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'address','<?php echo $reseller->id; ?>')" > <?php echo $reseller->address; ?></td>
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'balance','<?php echo $reseller->id; ?>')" ><?php echo $reseller->balance; ?></td> 
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'country','<?php echo $reseller->id; ?>')" ><?php echo $reseller->country; ?></td> 
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'country_code','<?php echo $reseller->id; ?>')" ><?php echo $reseller->country_code; ?></td>   
        <td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'status','<?php echo $reseller->id; ?>')" ><?php echo $reseller->status; ?></td>   

                <td><?php echo btn_edit('admin/reseller/edit/' . $reseller->id); ?></td>
                <td><?php echo btn_delete('admin/reseller/delete/' . $reseller->id); ?></td>
            </tr>
    <?php endforeach; ?>
    <?php else: ?>
            <tr>
                <td colspan="3">We could not find any users.</td>
            </tr>
    <?php endif; ?> 
            </tbody>
        </table>
    </section>
    <?php $this->load->view('admin/components/page_tail') ?>

现在我有另一个名为users的表,其中我有一个名为key的字段,其中存储了经销商的密钥,因此我想计算所有具有key="some-key"的用户。

这是需要的,因为在经销商的列表中,我想显示哪个经销商有多少用户。

我这样做了:

$key="Rajan-92-1-100-1";
        $this->load->model('reseller_m');
        $this->load->view('admin/reseller/count');
        $this->db->where('key',$key);
        $this->db->from('users');
        $count = $this->db->count_all_results();
        echo $count;

但这里我静态地提供密钥我想动态地为每个经销商计数

更新:

控制器

public function index ()
        {
            $usertype=$this->session->userdata('usertype');
            if($usertype ==="admin")
                {
                    // Fetch all users
                    $this->data['resellers'] = $this->reseller_m->get();


                    $data['resellers'] = array();
                if ($results) {
                  foreach($results as $result) {
                   $data['resellers'][] = array(
                      'sip_username' => $result['sip_username'],
                      'sip_password' => $result['sip_password'],
                      'key' =>  $result['key'],
                      'total' => $this->reseller_m->count($result['key']);
                      // Add your other data here.
                   );
                  }
                }

                    // Load view
                    $this->data['subview'] = 'admin/reseller/index';
                    $this->load->view('admin/_layout_main', $this->data);
                }
            else
                {

                    $this->load->view('permission');
                }   
        }
视图:

    <td>  <?php echo $reseller['total'];?></td>

模型:

public function count($key) 
    {
        $this->db->where('key', $key);
        $query = $this->db->get($this->db->dbprefix . 'users');
        return $query->num_rows();
    }
    public function get() 
    {
        $query = $this->db->get($this->db->dbprefix . 'users');
            if ($query->num_rows() > 0) 
            {
                  return $query->results_array();
            } 
            else
            {
                  return FALSE;
            }
    }

我会试试的。

当我需要计数时,我使用返回$query->num_rows();

模型函数

class Reseller_m extends CI_Model {
  public function count($key) {
    $this->db->where('key', $key);
    $query = $this->db->get($this->db->dbprefix . 'users');
    return $query->num_rows();
  }
 public function get() {
     // Not sure if you have any thing else here.
    $query = $this->db->get($this->db->dbprefix . 'users');
    if ($query->num_rows() > 0) {
          return $query->results_array();
          // return $query->row_array();
    } else {
          return FALSE;
    }
  }
}
控制器

当你需要在表中动态计数时,你可以像下面这样调用模型函数。在数组中,我发现像下面这样的数据数组对于表来说要容易得多。

public function index() {
    $usertype = $this->session->userdata('usertype');
    if ($usertype === "admin") {
    $this->load->model('reseller_m');
    $results = $this->reseller_m->get();
    // Removed $this->data and just have $data see what works. 
    $data['resellers'] = array();
    if ($results) {
      foreach($results as $result) {
       $data['resellers'][] = array(
          'id' => $result['id'],
          'sip_username' => $result['sip_username'],
          'sip_password' => $result['sip_password'],
          'key' =>  $result['key'],
          'total' => $this->reseller_m->count($result['key']),
          'allocation_block' => $result['allocation_block'],
          'name' => $result['name'],
          'email' => $result['email'],
          'phone' => $result['phone'],
          'user_num' => $result['user_num'],
          'address' => $result['address'],
          'balance' => $result['balance'],
          'country_code' => $result['country_code'],
          'status' => ($result['status'] ? Enabled : Disabled)
       );
      }
    }
      $data['subview'] = 'admin/reseller/index';
      $this->load->view('admin/_layout_main', $data);
    } else {
       $this->load->view('permission');
    }
}

视图例子

<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'total','<?php echo $reseller['id'];?>')" ><?php echo $reseller['total'];?></td>

表例

<tbody>
<?php if ($resellers) {?>
<?php foreach ($resellers as $reseller) {?>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'sip_username','<?php echo $reseller['id'];?>')" ><?php echo $reseller['sip_username'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'sip_password','<?php echo $reseller['id'];?>')" ><?php echo $reseller['sip_password'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'key','<?php echo $reseller['id'];?>')" ><?php echo $reseller['key'];?></td>
//  Added here Total Here
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'total','<?php echo $reseller['id'];?>')" ><?php echo $reseller['total'];?></td>

<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'allocation_block','<?php echo $reseller['id'];?>')" ><?php echo $reseller['allocation_block'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'name','<?php echo $reseller['id'];?>')" ><?php echo $reseller['name'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'email','<?php echo $reseller['id'];?>')" ><?php echo $reseller['email'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'phone','<?php echo $reseller['id'];?>')" ><?php echo $reseller['phone'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'user_num','<?php echo $reseller['id'];?>')" ><?php echo $reseller['user_num'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'address','<?php echo $reseller['id'];?>')" ><?php echo $reseller['address'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'balance','<?php echo $reseller['id'];?>')" ><?php echo $reseller['balance'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'country_code','<?php echo $reseller['id'];?>')" ><?php echo $reseller['country_code'];?></td>
<td  contenteditable="true" onClick="edit_Reseller(this)" onBlur="save_reseller(this,'status','<?php echo $reseller['id'];?>')" ><?php echo $reseller['status'];?></td>
<?php } else { ?>
<p>No Results</p>
<?php }?>
</tbody>