codeigniter查询分组从表中返回所有结果

时间:2017-07-28 15:34:31

标签: php sql codeigniter query-builder

我正在使用CodeIgniter框架。我正在为我的公司CMS创建搜索功能,搜索具有来自表单的不同输入。有没有办法根据$_POST输入运行查询组?我可以单独运行查询,例如:

class Search_model extends CI_Model {

public function get_results($search_term='default')
{
    $cat = $_POST["col"];
    // Column Select:
    $col = 'id, dob, gender, app_date, tests_ordered, payment_method, cost, report_results, country';

    // Build the query.
    $database = $this->load->database('bookings_dev', TRUE)
        ->select($col)
        ->from('results')
                ->where($cat . ' ' . 'BETWEEN "'. date('Y-m-d', strtotime($_POST['sdate'])). '" and "'. date('Y-m-d', strtotime($_POST['edate'])).'"')
        ->order_by($_POST["col"]);

    // Execute the query.
    $query = $database->get();

    // Return the results.
    return $query->result_array();
}

Works fine ad返回正确的记录(例如所选日期范围内的所有记录,我的问题是当我尝试扩展查询以考虑其他选项时我要么从db获取所有记录,要么没有.I&# 39;我试过改变LIKE和WHERE条款的顺序,我试过OR_LIKE,OR_WHERE等。任何指向正确方向的人都会非常感激。我读过CIs Query Builder Class Docs但是正式卡住了。这是我的模特:

<?php

类Search_model扩展了CI_Model {

public function get_results($search_term='default')
{
    $cat = $_POST["col"];
    // Column Select:
    $col = 'id, dob, gender, app_date, tests_ordered, payment_method, cost, report_results, country';

    // Build the query.
    $database = $this->load->database('bookings_dev', TRUE)
        ->select($col)
        ->from('results')
            ->group_start()
                ->where($cat . ' ' . 'BETWEEN "'. date('Y-m-d', strtotime($_POST['sdate'])). '" and "'. date('Y-m-d', strtotime($_POST['edate'])).'"')
            ->group_end()
            ->or_group_start()
                ->or_like($_POST["col"], $_POST["terms"])
            ->group_end()
        ->order_by($_POST["col"]);

    // Execute the query.
    $query = $database->get();

    // Return the results.
    return $query->result_array();
    }
}

对于achive来说,最喜欢的是: SELECT $ cols FROM results WHERE condtion 1有输入OR条件2输入或条件3等 这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以根据$_POST输入运行查询组,但是输入会发送到控制器,您应该使用一些参数编写方法并将其设置在控制器中。您无法直接将数据传输到模型。 这是一个参考。 https://www.sitepoint.com/the-mvc-pattern-and-php-1/

相关问题