Неподдерживаемый тип операнда - PullRequest
1 голос
/ 13 октября 2019

Вот моя ошибка

Тип: ошибка

Сообщение: неподдерживаемые типы операндов

Имя файла: C: \ wamp64 \ www \ Lending \ system \ library \ \Pagination.php

Я пытаюсь сделать журнал истории, затем показать его в таблице

вот мой код

    public function logs_count() 
    {
        $ref_code = $this->input->post('referal_code');

        $sql = "SELECT COUNT(*) FROM history WHERE referal_code = '{$ref_code}'";
        $query = $this->db->query($sql);

        return $query->result();
    }

function get_logs($limit, $start, $ref_code)
    {
        if(empty($id)){
            $this->db->limit($limit, $start);
            $query = $this->db->get('history');
            if ($query->num_rows() > 0) {
                foreach ($query->result() as $row) {
                    $data[] = $row;
                }
                return $data;
            } 
            return false;
        } else {
            $query = $this->db->get_where('history', array('referal_code' => $ref_code));
            return $query->row_array();
        }
    }

И на моем контроллере

$data = array();
        $data['title'] = "Account History";
        $data["investors"] = $this->investor->get_investor($this->session->userdata('refcode'));
        $config["base_url"] = base_url().'investor/logs';
        $config["total_rows"] = $this->investor->logs_count();
        $config["per_page"] = 10;
        $config["uri_segment"] = 3;
        $config['full_tag_open'] = '<ul class="pagination">';
        $config['full_tag_close'] = '</ul>';
        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li class="prev page">';
        $config['first_tag_close'] = '</li>';

        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li class="next page">';
        $config['last_tag_close'] = '</li>';

        $config['next_link'] = 'Next &rarr;';
        $config['next_tag_open'] = '<li class="next page">';
        $config['next_tag_close'] = '</li>';

        $config['prev_link'] = '&larr; Previous';
        $config['prev_tag_open'] = '<li class="prev page">';
        $config['prev_tag_close'] = '</li>';

        $config['cur_tag_open'] = '<li class="active"><a href="">';
        $config['cur_tag_close'] = '</a></li>';

        $config['num_tag_open'] = '<li class="page">';
        $config['num_tag_close'] = '</li>';
        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
        $data["data"] = $this->investor->get_logs($config["per_page"], $page,$this->session->userdata('refcode'));
        $this->pagination->initialize($config);
        $data["links"] = $this->pagination->create_links();

        $this->template->load('account_layout','contents','account_history', $data);

У меня есть ошибка в этой строке

$data["links"] = $this->pagination->create_links();

Кстати, я пытаюсь сделать журналы истории пагинации. Я использую codeigniter.

1 Ответ

0 голосов
/ 14 октября 2019

Функция CI $this->pagination->create_links(); возвращает HTML-строку с нумерацией страниц на основе чисел , установленных в $config['total_rows'] и $config['per_page']. см. Документы

ошибка " неподдерживаемые типы операндов " возникает при попытке определить

$config["total_rows"] = $this->investor->logs_count();

, которая не возвращает целое числочисло, но массив!

Поэтому измените функцию logs_count () на:

public function logs_count() 
{
    $ref_code = $this->input->post('referal_code');

    $sql = "SELECT COUNT(*) as mycount FROM history WHERE referal_code = '{$ref_code}'";
    $query = $this->db->query($sql);

    return $query->row()->mycount;
}

или способ Codeigniter, который создает и использует правильно экранированную строку запроса:

public function logs_count() 
{
  $ref_code = $this->input->post('referal_code');
  $query=$this->db->select('COUNT(*) as mycount')
                  ->where('referal_code',$ref_code)
                  ->get('history');
  return $query->row()->mycount;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...