2

データベースからの結果のリストを表示したいと考えています。現在、ビューには、クエリが取得した最後の行のみが表示されます。ここで何が欠けていますか?ご協力いただきありがとうございます。

モデル:

public function get_agencies() {
    $this->db->select("AgencyNumber, AgencyName, users.id, active");
    $this->db->from('Agency, users');
    $this->db->where('users.id = Agency.id');
    $q = $this->db->get();

    if($q->num_rows() > 0) {
        foreach($q->result() as $agency) {
            $data['agencies'] = $agency;
        }
        return $data;
    }
}

コントローラ:

function modify_agency() {
    $this->load->model('ion_auth_model');
    $this->data['agencies'] = $this->ion_auth_model->get_agencies();

    //added the following 2 lines to load view with header and footer from template         
    $this->data['main_content'] = 'auth/modify_agency';
    $this->load->view('./includes/template', $this->data);
}

意見:

<?php foreach ($agencies as $agency):?>
    <tr>
        <td><?php echo $agency->AgencyNumber;?></td>
        <td><?php echo $agency->AgencyName;?></td>
        <td><?php if($agency->active == 1) { echo 'Active'; } else { echo 'Inactive'; };?></td>
    </tr>
<?php endforeach;?>
4

3 に答える 3

1

そうあるべきです。

$data[] = $agency;

値の機関を解析する必要はありません。CodeIgniter がそれを行います。

$data['agencies'] = $agency;

それを試してみてください。

于 2013-09-11T20:14:55.437 に答える
1

$agencyモデルでは、変数を配列にプッシュしていません。反復ごとに置き換えられるため$data['agencies']、最後の反復の値のみが含まれます。また、Syed が上で答えたように、配列のインデックス値をコードに含める必要はありません。

次のように変更します。

$data[] = $agency;

また:

array_push($data, $agency);

お役に立てれば!

于 2013-09-11T20:01:32.047 に答える