从codeigniter中的数据库中获取数据

时间:2016-08-10 08:24:36

标签: php mysql codeigniter

我有两种情况,我在codeigniter中获取整个数据和同一个表的总行数,我想知道有没有办法可以获取总行数,整个数据和3个最新通过一个代码从同一个表中插入记录

  

两种情况的控制器代码如下所示(尽管我将每种情况分别应用于不同的参数)

public function dashboard()
    {
        $data['instant_req'] = $this->admin_model->getreq();
        $this->load->view('admin/dashboard',$data);
    }

1)从codeigniter

中的表中获取整个数据

型号代码

public function getreq()
    {
        $this->db->where('status','pending');
        $query=$this->db->get('instanthire');
        return $query->result();
    }

查看代码

foreach ($instant_req as $perreq) 
    {
        echo $perreq->fullname;
        echo "<br>";
    }

2)从codeigniter

中的表中获取行数
public function getreq()
    {
        $this->db->where('status','pending');
        $query=$this->db->get('instanthire');
        return $query->num_rows();
    }

查看代码

echo $instant_req;

6 个答案:

答案 0 :(得分:2)

您只能制作一个功能,可以同时为所有数据提供总行数,整数数据和3个最新插入的记录

例如在模型中

public function dashboard()
{
    $result = $this->admin_model->getreq();
    $this->load->view('admin/dashboard',$result);
}
控制器仪表板功能中的

foreach ($all_data as $perreq) 
{
    echo $perreq->fullname;
    echo "<br>";
}
//latest three record
foreach ($last_three as $perreq) 
{
    echo $perreq->fullname;
    echo "<br>";
}
//total count
echo $num_rows;

在视图中

**Please update your schema declarations to the 3.2 schema.** 

答案 1 :(得分:1)

原始查询可能在这里工作。

$resultSet =  $this->db->query("select * from table_name"); 
$queryCount = count($resultSet );

答案 2 :(得分:1)

功能

describe('methods', () => {
  it('can delete owned task', () => {
    Meteor.call('insertHelper',{a: 1});
  });
});

呼叫

function getData($limit = 0){

    //Create empty array
    $data = [];

    //Where clause
    $this->db->where('status','pending');

    //Order Data based on latest ID
    $this->db->order_by('id', 'DESC');
    if($limit != 0){
        $this->db->limit($limit);
    }

    //Get the Data
    $query = $this->db->get('instanthire');
    $data['count'] = $query->num_rows();
    $data['result'] = $query->result();
    return $data;

}

CodeIgniter Database Documentation

答案 3 :(得分:1)

尝试这个逻辑:

型号代码:

public function getreq()
{
    $this->db->where('status','pending');
    $this->db->order_by('id', 'DESC');  //actual field name of id
    $query=$this->db->get('instanthire');

    return $query->result();
}

控制器代码:

public function dashboard()
{
    $data['instant_req']  = $this->admin_model->getreq();
    $data['total_record'] = count($data['instant_req']);
    $this->load->view('admin/dashboard',$data);

}

查看代码:

 $i=0;
foreach ($instant_req as $perreq) 
{
    if($i<3){
         echo $perreq->fullname;
         echo "<br>";
    }
    $i++;
}
Echo 'Total record : '.$total_record;

答案 4 :(得分:0)

这是一个我可以首先想到的简单解决方案,但如果你想让我改进,我可以。

坚持使用您的第一个代码(模型),并在视图中计算迭代的项目数。

$count = 0;
foreach ($instant_req as $perreq) 
{
    echo $perreq->fullname;
    echo "<br>";
    $count++;
}
echo $count;

我还缺少什么吗?请告诉我

修改

这是另一种解决方案,返回一个数组

public function getreq()
{
    $this->db->where('status','pending');
    $query=$this->db->get('instanthire');
    $data['results'] = $query->result();
    $data['count'] = $query->num_rows();

    return $data
}

我不是很自信,并没有真正尝试过,但我认为它可以起作用。

答案 5 :(得分:0)

型号:

public function getreq()
{
     $res = $this->db->order_by("<place column primary id>","desc")->get_where('instanthire',['status'=> 'pending']);
     $latest_3 = [];
     if(count($res)){
        $i=1;
        foreach($res as $r){
            $latest_3[]=$r;
            if($i == 3)
               break;
            $i++;
        }
     }

     $arr = [
        'latest_3' => $latest_3,
        'count' => count($res),
        'total_result' => $res,
     ];
     return $arr;
}