2016-04-10 3 views
0

Ich habe 3 Tabellen in einer Datenbank.Fehlernummer: 1066 Nicht eindeutige Tabelle/Alias: 'core_user'

core_user core_company ct_company

i2 Tabellen core_user und core_company anschließen möchten, wo foriegn Schlüssel CMP_ID Spalte ist ..

aber es zeigt einen Fehler an.

Fehlernummer: 1066

Nicht eindeutige Tabelle/Alias: 'core_user'

SELECT * FROM (core_user, core_user) core_company ON core_company JOIN. cmp_id = core_user. cmp_id WHERE usr_email = '[email protected] UND usr_password = '123456' AND cmp_name = 'corpoleave'

Dateiname: F: /xampp/htdocs/corpoLeave/application/models/loginmodel.php

Linie Nummer: 10

Hier ist mein Modell. bitte hilfe. Dank

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

Nur eine Notiz, wenn Ihr mit CI 3 Versionen Klasse und Dateinamen nur Anfangsbuchstaben Großbuchstaben http://www.codeigniter.com/user_guide/general/models haben sollte .html # Anatomie eines Modells – user4419336

Antwort

1

Im Codeigniter Query Builder, die get() und from() Methoden führen in ähnlicher Weise.

get()

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

aus()

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

Sowohl die get("tablename") und from("tablename") Methoden effektiv anhängen FROM tablename an den eingebauten

:

Wie auf der Codeigniter docs gesehen Anweisung, auf der Suche etwas wie folgt aus:

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

(Man beachte die doppelte "FROM" statement)

Sie erhalten den Fehler, da Sie beide from() und get() mit Tabellennamen verwenden. Sie können entweder die from()-Anweisung entfernen oder den Tabellennamen aus der get()-Anweisung entfernen.

Dies aussehen würde:

<?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; 
     } 
    } 

} 
Verwandte Themen