где пункт для данных в codeigniter не работает - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь сделать простой набор данных, это совершенно нормально без подсказок где, но мне нужна подсказка где для работы "$ this-> db-> where ('user.user_id', $ this-> session- > UserData ( 'user_id'));». Пожалуйста, помогите мне разобраться, что здесь не так.

class Dashboard_model extends CI_Model{
    var $table = "todo";
    var $select_column = array("todo_id", "todo.user_id", "login", "content");
    var $order_column = array(null, "login", "content");
    public function make_query(){
        $this->db->select($this->select_column);
        $this->db->join('user', $this->table.'.user_id = user.user_id');
        $this->db->where('user.user_id', $this->session->userdata('user_id'));
        $this->db->from($this->table);
        if (isset($_POST["search"]["value"])){
            $this->db->like("login", $_POST["search"]["value"]);
            $this->db->or_like("content", $_POST["search"]["value"]);
        }
        if (isset($_POST["order"])){
            $this->db->order_by($this->order_column[ $_POST['order']['0']['column'] ], $_POST['order']['0']['dir']);
        }else{
            $this->db->order_by("todo_id", "DESC");
        }
    }
    public  function make_datatables(){
        $this->make_query();
        if ($_POST["length"] != -1){
            $this->db->limit($_POST["length"], $_POST["start"]);
        }
        $query = $this->db->get();
        return $query->result();
    }
    public function get_filtered_data(){
        $this->make_query();
        $query = $this->db->get();
        return $query->num_rows();
    }
    public function get_all_data(){
        $this->db->select("*");
        $this->db->from($this->table);
        return $this->db->count_all_results();
    }
}

1 Ответ

0 голосов
/ 05 ноября 2018

Ваше предложение where не работает, потому что вы использовали ИЛИ, как

$this->db->or_like(`"content", $_POST["search"]["value"]`);

Это создаст условие ИЛИ внутри запроса.

Использовать начало и конец группы до и после одинакового запроса.

пример

        if (isset($_POST["search"]["value"])){
            $this->db->group_start();
            $this->db->like("login", $_POST["search"]["value"]);
            $this->db->or_like("content", $_POST["search"]["value"]);
            $this->db->group_end();
        }

EDIT

Также проверьте необработанный запрос по

$this->db->last_query();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...