Получение результатов поиска в модели PHP CI - PullRequest
0 голосов
/ 22 марта 2019

привет, у меня вопрос в моей модели запросов.

вот мой контроллер:

    if($this->input->post('journalsearch'))
    {
        //VARIABLE SEARCH
        $start = $this->input->post('start');
        $limit = $this->input->post('limit');
        $dir = $this->input->post('dir');
        $order = $this->input->post('sort');
        $key = $this->input->post('journalsearch');
        $start_date = date('Y-m-d',strtotime($date_awal));
        $end_date = date('Y-m-d',strtotime($date_akhir));
        $journalType = $this->input->post('journal_type');
        $unposted = $this->input->post('unposted');
        $posted = $this->input->post('posted');
        //END VARIABLE SEARCH


        $q = $this->_model->searchJournal($key,$start,$limit,$dir,$order,$start_date,$end_date,$journalType,$posted,$unposted);

        $i=0;
        foreach($q as $row=>$value)
        {
            switch($value['JOURNAL_IS_POSTED'])
            {
                case '0' :
                    $q[$i]['JOURNAL_IS_POSTED'] = 'No';
                    break;
                case '1' :
                    $q[$i]['JOURNAL_IS_POSTED'] = 'Yes';
                    break;
                default:
                    $q[$i]['JOURNAL_IS_POSTED'] = '';
            }

            $i++;
        }

        $data['total'] = $this->_model->juml_search($this->input->post('journalsearch'),$jurnal_type);
        $data['result'] = $q;
    }

и вот моя модель:

function searchJournal($key,$start,$limit,$dir,$order,$start_date,$end_date,$journalType,$posted,$unposted)
{
    $this->db->select('JOURNAL_POSTED_DATE,JOURNAL_MEMO,JOURNAL_NUMBER,JOURNAL_TYPE_CODE,t_journal.JOURNAL_ID as JOURNAL_ID,JOURNAL_IS_POSTED,DATE_FORMAT(JOURNAL_DATE,\'%d %M %Y\') as JOURNAL_DATE,sum(if(JOURNAL_DETAIL_TYPE=1,JOURNAL_DETAIL_SUM,0)) as Debet,sum(if(JOURNAL_DETAIL_TYPE=2,JOURNAL_DETAIL_SUM,0)) as Kredit',false);
    $this->db->join('t_journal_detail','t_journal_detail.JOURNAL_ID=t_journal.JOURNAL_ID','left');

    MY_Model::branch_filtering($this,'t_journal','JOURNAL_CREATED_BY');//(object,'nama tabel atau alias','nama kolom')

    if($key AND $posted == true)
    {
        $this->db->like('t_journal.JOURNAL_ID',$key);
        $this->db->or_like('JOURNAL_TYPE_CODE',$key);
        $this->db->or_like('JOURNAL_NUMBER',$key);
        $this->db->or_like('JOURNAL_DATE',$key);
        $this->db->or_like('JOURNAL_MEMO',$key);
        $this->db->or_like('JOURNAL_CREATED_BY',$key);
        $this->db->or_like('JOURNAL_CREATED_DATE',$key);
        $this->db->or_like('JOURNAL_LAST_UPDATE_BY',$key);
        $this->db->or_like('JOURNAL_LAST_UPDATE',$key);
        $this->db->where('t_journal.JOURNAL_TYPE_CODE',$journalType);
        $this->db->where('JOURNAL_IS_POSTED',1);
        $this->db->where('DATE_FORMAT(JOURNAL_DATE,\'%Y-%m-%d\') >=',$start_date);
        $this->db->where('DATE_FORMAT(JOURNAL_DATE,\'%Y-%m-%d\') <=',$end_date);
    }
    elseif($key AND $unposted == true)
    {
        $this->db->like('t_journal.JOURNAL_ID',$key);
        $this->db->or_like('JOURNAL_TYPE_CODE',$key);
        $this->db->or_like('JOURNAL_NUMBER',$key);
        $this->db->or_like('JOURNAL_DATE',$key);
        $this->db->or_like('JOURNAL_MEMO',$key);
        $this->db->or_like('JOURNAL_CREATED_BY',$key);
        $this->db->or_like('JOURNAL_CREATED_DATE',$key);
        $this->db->or_like('JOURNAL_LAST_UPDATE_BY',$key);
        $this->db->or_like('JOURNAL_LAST_UPDATE',$key);
        $this->db->where('t_journal.JOURNAL_TYPE_CODE',$journalType);
        $this->db->where('JOURNAL_IS_POSTED',0);
        $this->db->where('DATE_FORMAT(JOURNAL_DATE,\'%Y-%m-%d\') >=',$start_date);
        $this->db->where('DATE_FORMAT(JOURNAL_DATE,\'%Y-%m-%d\') <=',$end_date);
    }

    $this->db->limit($limit,$start);
    $this->db->order_by($order,$dir);
    $this->db->group_by('JOURNAL_ID');

    $q = $this->db->get('t_journal');
    $result = $q->result_array();
    $q->free_result();
    return $result;
}

Я попытался сделатьмодель, как эта, но результаты были не то, что я хотел.

Я хочу, чтобы результаты запроса, например: я ищу по ключевому слову номер журнала "000798" с условием опубликованного статуса, диапазондат с 2019-02-01 по 2019-02-28, журнал журнала премиум-квитанций типа.

затем результат

journal number like = 000798
where journal_is_posted = 1
and journal_type = premium receipt journal
and date_format (journal_date, \ '% Y-% m-% d \') >= ', 2019-02-01
and date_format (journal_date, \ '% Y-% m-% d \') <= ', 2019-02-28

прошу друзей, мне нужно решение, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...