2013-08-14 2 views
0

Я написал простой контроллер отображения базы данных с codeigniter, и я пытаюсь добавить разбивку на страницы. Контроллер получает информацию из базы данных (ее очень мало, поэтому нет необходимости в модели) и отправляет ее в виде для отображения с разбивкой по страницам. Отображаются страницы разбиения на страницы, но по какой-то причине информация о базе данных не отображается. Я получаю эту ошибку: Resource ID # 7 Идентификатор ресурса # 13Добавить разбивку на страницы в простой блог, написанный в codeigniter

PHP-обнаружена ошибка

Серьезность: Обратите внимание

сообщение: Array для преобразования строки

Имя файла: Views/blog_view .php

Порядковый номер: 12

< --- структура базы данных - ->

CREATE TABLE `cities` (
`city` varchar(50) NOT NULL, 
`state_code` char(2) NOT NULL, 
KEY `idx_state_code` (`state_code`) 
) ENGINE=MyISAM; 

< --- контроллер сайта --->

<?php 
class Site extends CI_Controller { 

public function index() 
{ 
    $this->load->library('pagination'); 
    $this->load->library('table'); 
    $config['base_url'] =  'http://localhost:8888/pagination/index.php/site/index/'; 
    $config['total_rows'] = $this->db->get('cities')->num_rows(); 
    $config['per_page'] = 20; 

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

    $data['records'] = $this->db->get('cities', $config['per_page'], $this->uri->segment(3)); 

    $this->load->view('data_view',$data); 
} 
} 
?> 

< --- data_view --->

<!DOCTYPE html> 
<html> 
<head> 
<title>Display Database info</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<!-- Bootstrap --> 
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
</head> 
<body> 

<?foreach($records as $item):?> 
    <?php echo $item; ?> 
<?endforeach?> 

<?php echo $this->pagination->create_links(); ?> 

<!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) --> 
<script src="js/respond.js"></script> 
</body> 

+0

Следуйте инструкциям, попробуйте сделать это самостоятельно, вернитесь здесь с конкретным вопросом. –

ответ

0

Вам необходимо позвонить result() в этом запросе.

public function index() 
{ 
    $this->load->library('pagination'); 
    $this->load->library('table'); 
    $config['base_url'] =  'http://localhost:8888/pagination/index.php/site/index/'; 
    $config['total_rows'] = $this->db->get('cities')->num_rows(); 
    $config['per_page'] = 20; 

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

    $query = $this->db->get('cities', $config['per_page'], $this->uri->segment(3)); 
    $data['records'] = $query->result(); 

    $query->free_result(); 

    $this->load->view('data_view',$data); 
} 
0

Используйте этот обновленный код, вы должны позвонить в метод result() и указать его имя.

<?foreach($records->result() as $item):?> 
    <?php echo $item->city; ?> 
<?endforeach?> 
Смежные вопросы