2012-09-16 30 views
5

Bu yüzden katılmak istediğim 3 tablom var.Codeigniter: 3 tabloya katıl ve verileri görüntüle

Bir uygulama i Codeigniter inşa ediyorum ve ben 3 tablolar

Müşteri vardır:
-id
-phone_number
-hospital_id
-smc_status
-testing_center_id

Hastanesi
-idBen görünümünde

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(); 
    } 

: -adı

Testing_center modelinde
-id
-adı

, bu var

<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> 

Ama bu becau se üçüncü ve dördüncü td de hastane adını ve test merkezi adını gösteremedim. Bunun için nasıl gidebilirim? Bir sebepten ötürü işe yaramayan birkaç tekniği denedim. Bunun yerine

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

: aynı olup olmadığını

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

da

istemci * s * ve müşteri kontrol

bu deneyin ne olur

cevap

0

bildiriniz Her yerde

Ayrıca Ne olarak değişir önerilen teklif: $ this-> db-> select ('clients. *'); için:

$this->db->select('*'); 
+0

gibi sholud ama HTTP Hatası 500. o neden alıyorum sonunda? – raybesiga

+0

Kontrol edildi ve bazı yazım hataları yaptım. Tavsiye için teşekkürler! – raybesiga

+0

Bir formu doldurmaya ve verileri veritabanına geri farklı tablolar halinde itmeye çalışıyorum. Bunun için nasıl giderim? İlk olarak, veritabanını, katılımları anlayacağı şekilde veya veritabanında beklendiği gibi girdi metni yerleştirmem gerekecek şekilde veritabanına bağlarım? – raybesiga

3

Yalnızca clients tablodan değerleri seçerek ediyoruz. Sen

$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'); 

Sonra

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

DÜZENLEME bunlara erişebilirsiniz kuyu gibi diğer tablolardan sütunları seçmek gerekir: Ayrıca clients.* yapıyor sen shouldn't use SELECT *, hangi. Kodumu güncelledi.

+0

Değişiklikleri yaptım ama sonuçta HTTP Hatası 500 aldım. Neden bu? – raybesiga

+0

Yanlış gidebilecek bir çok farklı şey var. PHP günlüğünü kontrol et. ('Clients.id, clients.phone_number, clients.smc_status, clients.language seçin> $ this-> db-: –

+0

benim localhost üzerinde çalışan benim ve herhangi günlükleri kontrol edemez, ama ben sadece değiştirildi , hospital.name AS hospital_name, \t \t \t \t testing_center.name AS testing_center_name '); $ this-> db-> from ('clients'); $ this-> db-> join ('hospital', 'hospital.id = clients.id'); $ this-> db-> join ('testing_center', 'testing_center.id = clients.id'); $ query = $ this-> db-> get(); return $ sorgu-> result_array(); } $ query = $ this-> db-> get_where ('clients', array ('slug' => $ slug)); dönüş $ query-> row_array(); } } – raybesiga

0

O da senin gibi ben ilk Nerd tarafından öneriler gerekli tüm değişiklikleri yaptık bu

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

Her iki tabanda ("istemcilerdeki hospital_id, hastanede kimlik") ve ("istemcilerde testing_center_id, testing_center'da kimlik") gibi aynı sütun adlarının birleştirilmesinde bir yanlışlık var. – Gautam3164

İlgili konular