0

codeigniter を使用して単純なデータベース表示コントローラーを作成し、ページネーションを追加しようとしています。コントローラーはデータベースから情報を取得し (非常に小さいため、モデルは必要ありません)、それをビューに送信して、ページネーションで表示します。ページネーション リンクは表示されますが、何らかの理由でデータベース情報が表示されません。次のエラーが発生し続けます: Resource id #7 Resource id #13

PHP エラーが発生しました

重大度: 通知

メッセージ: 配列から文字列への変換

ファイル名: 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>

4

2 に答える 2

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);
}
于 2013-08-15T07:25:55.630 に答える
0

この更新されたコードを使用します。result() メソッドを呼び出して、フィールド名も指定する必要があります。

<?foreach($records->result() as $item):?>
    <?php echo $item->city; ?>
<?endforeach?>
于 2013-08-15T10:08:02.280 に答える