5

だから私は参加したい3つのテーブルを持っています。

私はアプリi Codeigniterを構築しており、3つのテーブルがあります

クライアント:
-id
-phone_number
-hospital_id
-smc_status
-testing_center_id

病院
-id -
名前

Testing_center
-id
-name

モデルでは、私はこれを持っています:

public function get_clients()
    {
        if($slug === FALSE)
        {
            $this->db->select('clients.*');
            $this->db->from('clients');
            $this->db->join('hospital', 'clients.id = hospital.id');
            $this->db->join('testing_center', 'clients.id = testing_center.id');
            $query = $this->db->get();

            return $query->result_array();
        }

        $query = $this->db->get_where('clients');
        return $query->row_array();
    }

私が持っているビューで:

<tbody>
    <?php foreach ($clients as $client_item): ?>
    <tr>
        <td><?php echo $client_item['phone_number'] ?></td>
        <td><?php echo $client_item['smc_status'] ?></td>
        <td><?php echo $client_item['hospital_id'] ?></td> //i wish to have the hospital name here
        <td><?php echo $client_item['testing_center_id'] ?></td> //i wish to have the testing center name here
        <td><?php echo $client_item['language'] ?></td>
        <td><a href="#">View</a></td>
    </tr>
    <?php endforeach ?>
</tbody>

しかし、それは私が 3 回目と 4 回目の td で病院名と検査センター名を表示できなかったためです。どうすればそれについて行くことができますか?何らかの理由で機能しないように思われたいくつかの手法を試しました。お知らせ下さい

4

3 に答える 3

3

clientsテーブルから値を選択しているだけです。他のテーブルからも列を選択する必要があります

$this->db->select('clients.id, 
    clients.phone_number,
    clients.smc_status,
    clients.language,
    hospital.name AS hospital_name, 
    testing_center.name AS testing_center_name');

その後、次の方法でアクセスできます

<?php echo $client_item['hospital_name'] ?>
<?php echo $client_item['testing_center_name'] ?>

編集:また、実行している SELECT *を使用しないでくださいclients.*。私のコードを更新しました。

于 2012-09-16T12:55:33.493 に答える
0

これを試すとどうなりますか:

 $this->db->join('hospital', 'hospital.id = clients.id');
 $this->db->join('testing_center', 'testing_center.id = clients.id');

これの代わりに:

 $this->db->join('hospital', 'clients.id = hospital.id');
 $this->db->join('testing_center', 'clients.id = testing_center.id');

もチェック

client* s * と client (どこでも同じ場合)

また、Nerd が提案したように変更します: $this->db->select('clients.*'); に:

$this->db->select('*'); 
于 2012-09-16T12:53:50.977 に答える
0

このようになるはずです

 $this->db->join('hospital', 'clients.hospital_id = hospital.id');
 $this->db->join('testing_center', 'clients.testing_center_id  = testing_center.id');
于 2012-09-18T09:32:20.207 に答える