2014-09-15 3 views
1

Я новичок в CI, поэтому ребята просят помочь мне отобразить результат для ссылки на страницы. В базе данных у меня есть 3 записи. Я показываю одну запись для каждой страницы. Проблема в моей ссылке на страницу, когда я выбираю следующую цифровую ссылку для разбивки на страницы, результат не отображается.Ссылка на ссылку на ссылку для Codeigniter не работает

Дело в том, что когда я нажимаю на номер 2 вывода ссылки на страницы, результаты показывают, что результаты пустые, и я не получаю никаких значений для echo $ data-> email.Below - это мой контроллер, модель, представление.

Я пробовал много способов, но не использовал, я даже полностью искал Google, хотя и не использовал. Я думаю, что проблема в том, когда страница загружается, чтобы получить вторую запись из базы данных, когда ссылка на постраничную ссылку выбрана, значения post больше не переходят на страницу модели, поэтому может возникнуть проблема.

Это мой контроллер.

public function users($limit=1,$offset){ 
$this->load->helper('url'); 
$this->load->view('includes/kheader'); 
$this->load->view('includes/kmenu'); 
$data = array(); 

    $look = $this->input->post('look'); 
    $age = $this->input->post('age'); 
    $age_from = $this->input->post('age_from'); 
    $age_to = $this->input->post('age_to'); 
    $se_ct = $this->input->post('sect'); 
    $subsect = $this->input->post('subsect'); 
    $coun_try = $this->input->post('country'); 
    $sta_te = $this->input->post('state'); 
    $ci_ty = $this->input->post('city'); 
    $qualification = $this->input->post('qualification'); 
    $results = $this->searchresultss->login($look, $age, $age_to, $age_from, $se_ct, $subsect, $coun_try, $sta_te, $ci_ty, $qualification); 
    //for base_url() 
    $this->load->helper('url'); 
    //Pagination Config 
    $config = array(); 
    // $config['base_url'] = base_url().'searchresult/users'; 
    $config['base_url'] = base_url().'searchresult/users'; 
    $config['total_rows'] = count($results); 
    $config['per_page'] = $limit; 
    $this->load->library('pagination', $config); 
    $data['pagination_links'] = $this->pagination->create_links(); 
    //Reducing the number of results for the view 
    /** NOTE: This is not the most efficient way **/ 
    //echo $data; 
    $data['results'] = array_slice($results,$offset,$limit); 
$this->load->view('searchresult', $data); 

Вот моя модель страница

public function login($look, $age, $age_to, $age_from, $se_ct, $subsect, $coun_try, $sta_te, $ci_ty, $qualification) 
      { 
return $this->db->query("SELECT * FROM users WHERE gender = '$look' And status='1'")->result(); 
      } 

Я не могу получить ответ через Google тоже Но что отображается одна запись, когда проблема загрузки страницы является при выборе пагинацию ссылка следующей числовой ссылки не работает. Сценарий разбиения на страницы не работает должным образом, я думаю, что это связано со смещением. Так что может быть ошибкой, я не уверен, поэтому я отправляю свой код ниже, пройдите через него и помогите мне.

// Ошибка, когда я выбираю следующую цифровую ссылку для разбивки на страницы, запись не извлекается из базы данных. Я получаю вывод как пустой результат на странице просмотра. Запросить вас, чтобы помочь мне в решении проблемы и более предупреждающем сообщении отсутствует аргумент 2 для Searchresult :: users(), и больше сообщений об ошибке - неопределенное смещение переменной.

Вот вид страница

if (empty($results)) { 
    echo 'Results set is empty'; 
} else { 
foreach ($results as $data) { 
     echo $data->email.'<br />'; 
    } 
} 
echo $pagination_links; 

Имеет Я новичок в či IAM ищет разработчик či, который может испрашивается моей проблемой, если есть какая-либо ошибка, пожалуйста, не возражает.

+0

где вы определили '$ offset' и' $ limit'? Почему вы разбиваете страницы на массив? вместо базы данных? Знаете ли вы, что можно уменьшить нагрузку на запрос для реализации разбиения на страницы в запросе базы данных? –

+0

На самом деле я совершенно новый для php, ci я сбросил $ limit за функцию, но я определил $ offset .. можно коротко объяснить, какие изменения должны быть сделаны. –

+0

Сначала вы должны скрыть основы, https://ellislab.com/ codeigniter/user-guide/libraries/pagination.html И вы должны определить обе переменные в одном и том же методе, а не в другом месте, или можете определить его в том же классе, что и общедоступная переменная. Чтобы вы могли получить к нему доступ в любом месте того же класса. –

ответ

0

Рассмотрим следующий пример:

 // Pagination Library 
     $this->load->library('pagination'); 

     $Row_Per_Page = $this->rpp; // or direct assign 10 as int 


     $Page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 

     // Only for Query String ?page=2&parm=val&parm2=val2 
     $this->pagination->suffix = ! empty($QS) ? "?" . $QS : ""; 


     // Configuration Settings 
     $config['base_url'] = base_url("cpanel/invoices"); 
     $config['total_rows'] = $this->invoice->invoices_count($QS); 
     $config['per_page'] = $Row_Per_Page; 
     $config["uri_segment"] = 3; 
     $config['first_link'] = 'First'; 
     $config['first_tag_open'] = '<li>'; 
     $config['first_tag_close'] = '</li>'; 
     $config['last_link'] = 'Last'; 
     $config['last_tag_open'] = '<li>'; 
     $config['last_tag_close'] = '</li>'; 
     $config['next_link'] = '&raquo;'; 
     $config['next_tag_open'] = '<li>'; 
     $config['next_tag_close'] = '</li>'; 
     $config['prev_link'] = '&laquo;'; 
     $config['prev_tag_open'] = '<li>'; 
     $config['prev_tag_close'] = '</li>'; 
     $config['cur_tag_open'] = '<li class="active"><a href="javascript:;">'; 
     $config['cur_tag_close'] = '</a></li>'; 
     $config['num_tag_open'] = '<li>'; 
     $config['num_tag_close'] = '</li>'; 

     $this->pagination->initialize($config); 

     // Pass variables to query 
     // $config["per_page"] -> Row Per Page 
     // $Page -> Holds the Starting Limit from URI Segment 
     $this->settings['Invoices'] = $this->invoice->get_invoice_list($config["per_page"], $Page, $this->input->server('QUERY_STRING')); 
     $this->settings['Pagination_Link'] = $this->pagination->create_links(); 




     $this->load->view('cpanel/invoice_lists', $this->settings); 

Читать комментарии между кодами для лучшего понимания. Надеюсь, это поможет вам.

Смежные вопросы