我想在codeigniter中将此查询转换为Ignited datatable查询
我不知道如何将这个长模型函数转换为ignited datatable查询。我用点燃的数据表完成了一些小的选择功能。有人知道吗?我想在codeigniter中将此查询转换为Ignited datatable查询,codeigniter,datatable,codeigniter-2,codeigniter-3,Codeigniter,Datatable,Codeigniter 2,Codeigniter 3,我不知道如何将这个长模型函数转换为ignited datatable查询。我用点燃的数据表完成了一些小的选择功能。有人知道吗? 我不知道如何隐藏它。有什么功能可以做吗 public function fetch_data() { $this->db->from('jil_requirements'); $this->db->join('jil_users', 'jil_requirements.rqm_use
我不知道如何隐藏它。有什么功能可以做吗
public function fetch_data() {
$this->db->from('jil_requirements');
$this->db->join('jil_users', 'jil_requirements.rqm_userid=jil_users.usr_id', 'left');
$this->db->join('jil_merchants', 'jil_requirements.rqm_createdempid=jil_merchants.mer_id', 'left');
$this->db->where('jil_requirements.rqm_permission!=', '4');
$this->db->order_by("jil_requirements.rqm_id", "desc");
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$this->db->select('count(jil_mrorfq.rfq_requirementid) as total');
$this->db->from('jil_mrorfq');
$this->db->join('jil_requirements', 'jil_requirements.rqm_id=jil_mrorfq.rfq_requirementid', 'left');
$this->db->where('jil_requirements.rqm_id',$row->rqm_id);
$query2= $this->db->get()->row_object();
$row->total_count = $query2->total;
$this->db->select('count(jil_quotemjdetail.qud_requirementid) as quotemjtotal');
$this->db->from('jil_quotemjdetail');
$this->db->join('jil_requirements', 'jil_requirements.rqm_id=jil_quotemjdetail.qud_requirementid', 'left');
$this->db->where('jil_requirements.rqm_id',$row->rqm_id);
$query3= $this->db->get()->row_object();
$row->quotemj_total = $query3->quotemjtotal;
$this->db->select('count(jil_quotejcdetail.qud_requirementid) as quotejctotal');
$this->db->from('jil_quotejcdetail');
$this->db->join('jil_requirements', 'jil_requirements.rqm_id= jil_quotejcdetail.qud_requirementid', 'left');
$this->db->where('jil_requirements.rqm_id',$row->rqm_id);
$query4= $this->db->get()->row_object();
$row->quotejc_total = $query4->quotejctotal;
$this->db->select('count( jil_pocjdetail.pocd_requirementid) as pocjtotal');
$this->db->from('jil_pocjdetail');
$this->db->join('jil_requirements', 'jil_requirements.rqm_id= jil_pocjdetail.pocd_requirementid', 'left');
$this->db->where('jil_requirements.rqm_id',$row->rqm_id);
$query5= $this->db->get()->row_object();
$row->pocj_total = $query5->pocjtotal;
$this->db->select('count(jil_pojmdetail.pojd_requirementid) as pojmtotal');
$this->db->from('jil_pojmdetail');
$this->db->join('jil_requirements', 'jil_requirements.rqm_id= jil_pojmdetail.pojd_requirementid', 'left');
$this->db->where('jil_requirements.rqm_id',$row->rqm_id);
$query6= $this->db->get()->row_object();
$row->pojm_total = $query6->pojmtotal;
$data[] = $row;
}
return $data;
}
return false;
}
首先,您必须加载ignited dataTables库
$this->load->library('datatables');
或
将其添加到Autoloader,以便在Codeigniter应用程序启动时自动加载
在那之后,改变一切
$this->db->
在您的查询中
$this->datatables
最后,您必须使用它对json数组中的数据进行编码
$this->datatables->generate();
让我知道我是否还能帮上忙
更新
public function fetch_data() {
$this->datatables->from('jil_requirements');
$this->datatables->join('jil_users', 'jil_requirements.rqm_userid=jil_users.usr_id', 'left');
$this->datatables->join('jil_merchants', 'jil_requirements.rqm_createdempid=jil_merchants.mer_id', 'left');
$this->datatables->where('jil_requirements.rqm_permission!=', '4');
$this->datatables->order_by("jil_requirements.rqm_id", "desc");
$query = $this->datatables->get();
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$this->datatables->select('count(jil_mrorfq.rfq_requirementid) as total');
$this->datatables->from('jil_mrorfq');
$this->datatables->join('jil_requirements', 'jil_requirements.rqm_id=jil_mrorfq.rfq_requirementid', 'left');
$this->datatables->where('jil_requirements.rqm_id',$row->rqm_id);
$query2= $this->datatables->get()->row_object();
$row->total_count = $query2->total;
$this->datatables->select('count(jil_quotemjdetail.qud_requirementid) as quotemjtotal');
$this->datatables->from('jil_quotemjdetail');
$this->datatables->join('jil_requirements', 'jil_requirements.rqm_id=jil_quotemjdetail.qud_requirementid', 'left');
$this->datatables->where('jil_requirements.rqm_id',$row->rqm_id);
$query3= $this->datatables->get()->row_object();
$row->quotemj_total = $query3->quotemjtotal;
$this->datatables->select('count(jil_quotejcdetail.qud_requirementid) as quotejctotal');
$this->datatables->from('jil_quotejcdetail');
$this->datatables->join('jil_requirements', 'jil_requirements.rqm_id= jil_quotejcdetail.qud_requirementid', 'left');
$this->datatables->where('jil_requirements.rqm_id',$row->rqm_id);
$query4= $this->datatables->get()->row_object();
$row->quotejc_total = $query4->quotejctotal;
$this->datatables->select('count( jil_pocjdetail.pocd_requirementid) as pocjtotal');
$this->datatables->from('jil_pocjdetail');
$this->datatables->join('jil_requirements', 'jil_requirements.rqm_id= jil_pocjdetail.pocd_requirementid', 'left');
$this->datatables->where('jil_requirements.rqm_id',$row->rqm_id);
$query5= $this->datatables->get()->row_object();
$row->pocj_total = $query5->pocjtotal;
$this->datatables->select('count(jil_pojmdetail.pojd_requirementid) as pojmtotal');
$this->datatables->from('jil_pojmdetail');
$this->datatables->join('jil_requirements', 'jil_requirements.rqm_id= jil_pojmdetail.pojd_requirementid', 'left');
$this->datatables->where('jil_requirements.rqm_id',$row->rqm_id);
$query6= $this->datatables->get()->row_object();
$row->pojm_total = $query6->pojmtotal;
echo $this->datatables->generate();
}
在你的控制器中使用这个,看看它是否工作
public function fetch_data()
{
$this->load->library("datatables");
$query = $this->datatables
->select('jil_requirements.*,count(jil_mrorfq.rfq_requirementid) as total,count(jil_quotemjdetail.qud_requirementid) as quotemjtotal,count(jil_quotejcdetail.qud_requirementid) as quotejctotal,count( jil_pocjdetail.pocd_requirementid) as pocjtotal,count(jil_pojmdetail.pojd_requirementid) as pojmtotal')
->from('jil_requirements')
->join('jil_users', 'jil_requirements.rqm_userid=jil_users.usr_id', 'left')
->join('jil_merchants', 'jil_requirements.rqm_createdempid=jil_merchants.mer_id', 'left')
->join('jil_mrorfq', 'jil_mrorfq.rfq_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_quotemjdetail', 'jil_quotemjdetail.qud_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_pocjdetail', 'jil_pocjdetail.pocd_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_pojmdetail', 'jil_pojmdetail.pojd_requirementid = jil_requirements.rqm_id', 'left')
->where('jil_requirements.rqm_permission!=', '4');
echo $this->datatables->generate();
}
不了解数据库查询要求。但我猜你在找这样的东西:。。与此问题无关,您可以使用表的联接,而不是在循环中调用多个查询。但我想从其他表的结果中获取结果。如果这样,您可以使用查询。链接指向你的要求吗?@KiranKrishnan是的,我的要求。你能帮忙吗?是的,我确实加入了,但我不知道这个转换:(你确定吗?关于这一点?我不明白你想用这些查询来实现什么。你能解释一下吗…所以,我可以帮你…我理解每个单独的表查询,但为什么你要把它们放在一起。内部查询取决于每个表查询。)result@Angel现在检查仅用于测试目的,使用我更新的代码i它给了您想要的输出吗?我正在处理您的复杂结构,首先让它看起来简单,然后我们将把它转换为点燃的数据表…:)我在控制台中遇到了一些错误,比如未定义的函数order_by() etc@AngelOkk然后删除order by并尝试…Ignited datatables不支持order by,因此请在您的jquery
“aaSorting”中使用它:[1,“asc”]],
2小时后您是否有空?我将在晚上7点回来?如果您有时间,请准时来
public function fetch_data()
{
$this->load->library("datatables");
$query = $this->datatables
->select('jil_requirements.*,count(jil_mrorfq.rfq_requirementid) as total,count(jil_quotemjdetail.qud_requirementid) as quotemjtotal,count(jil_quotejcdetail.qud_requirementid) as quotejctotal,count( jil_pocjdetail.pocd_requirementid) as pocjtotal,count(jil_pojmdetail.pojd_requirementid) as pojmtotal')
->from('jil_requirements')
->join('jil_users', 'jil_requirements.rqm_userid=jil_users.usr_id', 'left')
->join('jil_merchants', 'jil_requirements.rqm_createdempid=jil_merchants.mer_id', 'left')
->join('jil_mrorfq', 'jil_mrorfq.rfq_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_quotemjdetail', 'jil_quotemjdetail.qud_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_pocjdetail', 'jil_pocjdetail.pocd_requirementid = jil_requirements.rqm_id', 'left')
->join('jil_pojmdetail', 'jil_pojmdetail.pojd_requirementid = jil_requirements.rqm_id', 'left')
->where('jil_requirements.rqm_permission!=', '4');
echo $this->datatables->generate();
}