如何使用 CodeIgniter 解决日期范围搜索

Posted

技术标签:

【中文标题】如何使用 CodeIgniter 解决日期范围搜索【英文标题】:How to solve the date range search using CodeIgniter 【发布时间】:2018-11-20 06:16:36 【问题描述】:

控制器代码

public function getcari()

    $tglawal=date('Y-m-d', strtotime($this->input->post('tgl1', TRUE)));
    $tglakhir=date('Y-m-d', strtotime($this->input->post('tgl2', TRUE)));
    $data['detail']=$this->traffic_model->cari($tglawal,$tglakhir); 
    $this->load->view('daftar_traffic', $data); //menampilkan data yang sudah dicari

型号代码

function cari($tglawal,$tglakhir)      

$this->db->select('DATE_FORMAT(tgl, %d %M %Y) AS tanggal,COUNT(IF(kategori.parent=35 , VALUE, NULL)) AS Software,  COUNT(IF(kategori.parent=33 , VALUE, NULL)) AS Indent,  COUNT(IF(kategori.parent=32 , VALUE, NULL)) AS Ready, COUNT((DATE_FORMAT(tgl, %d - %m - %Y))) AS Total'); //changed the code here from COUNT(clients.id) AS num_rows
$this->db->from('masalah ');
$this->db->where('DATE(masalah.tgl) >=', $tglawal);
$this->db->where('DATE(masalah.tgl) <=', $tglakhir);
$this->db->join('kategori, kategori.kategori=masalah.kategori', 'left');
$this->db->group_by('tanggal');
$query = $this->db->get();
return $query->result();

查看代码

<form action="<?php echo site_url('traffic/getcari');?>" method="post"><input type="date" name="tgl1" palceholder="Input date" requaried="true" /> <input type="date" name="tgl2" palceholder="Input date" requaried="true" /><button type="submit">Cari</button> <a href="<?php echo site_url('traffic'); ?>" style="text-decoration:none; color: black;">Reset</a>

错误...警告: 包括(C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php): 无法打开流:中没有这样的文件或目录 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行

警告:include():打开失败 'C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php' 包含 (include_path='C:\xampp\php\PEAR') 在 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行

致命错误:在 null in 上调用成员函数 cari() C:\xampp\htdocs\portalacw\application\modules\traffic\controllers\traffic.php 第 24 行

警告: 包括(C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php): 无法打开流:中没有这样的文件或目录 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行

警告:include():打开失败 'C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php' 包含 (include_path='C:\xampp\php\PEAR') 在 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行

警告: 包括(C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php): 无法打开流:中没有这样的文件或目录 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行

警告:include():打开失败 'C:\xampp\htdocs\portalacw\application\views\errors\html\error_php.php' 包含 (include_path='C:\xampp\php\PEAR') 在 C:\xampp\htdocs\portalacw\system\core\Exceptions.php 在第 269 行'

请帮帮我

【问题讨论】:

好吧,首先,您似乎删除了错误视图。应该是视图中名为errors 或类似名称的文件夹。如果您没有它,请从 CI 的新副本下载它并将其放置在 views 文件夹中。 【参考方案1】:

在我看来,您的问题是因为您没有正确加载模型。 所以你的控制器把traffic_model 变成了null

【讨论】:

这应该是一条评论 你能帮帮我吗?我该怎么办? 在使用模型之前,您应该加载模型。 这是加载模型的代码 $data['detail']=$this->traffic_model->cari($tglawal,$tglak​​hir); 应该是这样的:$this->load('Traffic_Model', 'traffic_model');

以上是关于如何使用 CodeIgniter 解决日期范围搜索的主要内容,如果未能解决你的问题,请参考以下文章

PHP,Codeigniter:如何在Web应用程序中根据用户时区/位置设置日期/时间?

在codeigniter中获取两个日期范围之间的数据

使用ajax codeigniter php根据日期检索数据库值

使用 Jquery Datepicker 进行 PHP MYSQL 日期范围搜索

在 neo4j 中,如何按日期索引并在日期范围内搜索?

银条。在 ModelAdmin 中按日期范围搜索