2016-04-10 12 views
0

Veritabanında 3 tablo var.Hata Numarası: 1066 Benzersiz bir tablo/takma ad: 'core_user'

core_user core_company ct_company

i ise Yabancı anahtar cmp_id sütun 2 tablolar core_user ve core_company katılmak isteyen

..

ama bir hata gösterir.

Hata Numarası: 1066

Değil benzersiz tablo/takma: core_company AÇIK core_company JOIN (core_user, core_user) DAN 'core_user'

SEÇ *. cmp_id = core_user. cmp_id NEREDE usr_email = '[email protected]' VE usr_password = '123456' VE cmp_name = 'corpoleave'

Dosya adı: F: /xampp/htdocs/corpoLeave/application/models/loginmodel.php

Hattı Numara: 10

İşte benim modelim. lütfen yardım et. Codeigniter Sorgu Builder sayesinde

<?php class LoginModel extends CI_Model{ 

    public function login_valid($email,$password,$cname){ 


     $q= $this->db->where(['usr_email'=>$email,'usr_password'=>$password,'cmp_name'=>$cname]) 
          ->from('core_user'); 

          $this->db->join('core_company', 'core_company.cmp_id = core_user.cmp_id'); 
          $q = $this->db->get('core_user')->result(); 
          if($q->result()==true) 
          { 
           return $q->row()->user_id; 


          } 
          else{ 

           return false; 
          } 

}} 

?> 
+0

senin kullanarak CI 3 versiyonları sınıf ve dosya adları sadece olması gereken eğer sadece bir not ilk harfi büyük harf http://www.codeigniter.com/user_guide/general/models .html # anatomisi-of-a-modeli – user4419336

cevap

1

, get() ve from() yöntemlerin de benzer şekilde gerçekleştirin.

get() den

$query = $this->db->get('mytable'); 
// Produces: SELECT * FROM mytable 

()

$this->db->select('title, content, date'); 
$this->db->from('mytable'); 
$query = $this->db->get(); 
// Produces: SELECT title, content, date FROM mytable 

Hem get("tablename") ve from("tablename") yöntemleri etkin bir şekilde inşa etmek FROM tablename ekleyin: Codeigniter docs görüldüğü gibi

Böyle açıklamada, seyir şey: Eğer tablenames hem from() ve get() kullanıyor çünkü

$this->db->select('title, content, date'); 
$this->db->from('mytable'); 
$query = $this->db->get('mytable'); 
// Produces: SELECT title, content, date FROM mytable FROM mytable 

(deyimi "DAN" çift edin)

Sen hatayı alıyorsanız. from() deyimini kaldırabilir veya get() ifadesinden tablename kaldırabilirsiniz.

Bu şekilde görünecektir:

<?php 

class LoginModel extends CI_Model { 

    public function login_valid($email, $password, $cname) { 
     $this->db->where(['usr_email' => $email, 'usr_password' => $password, 'cmp_name' => $cname]); 
     $this->db->from('core_user'); 
     $this->db->join('core_company', 'core_company.cmp_id = core_user.cmp_id'); 

     $q = $this->db->get(); 

     if ($q->result()) { 
      return $q->row()->user_id; 
     } else { 
      return false; 
     } 
    } 

}