2016-11-09 7 views
0

Ich übergebe ein Array an mein Modell und ich möchte die employee_id s, die nicht in diesem Array sind. Das Feld 'Position' sollte gleich 'c' sein.codeigniter where_not_in funktioniert nicht

Folgende ist meine Tabelle:

emp_position table

Nach meinem Modell. $ evdata ist eine Zahl, die an das Modell übergeben wird, um die Auswahl der Datensätze zu begrenzen. Auch das Array $ data ist ein json-codiertes Array.

public function get_camaramens ($ data, $ evdata) {

$this->db->select('emp_position.employee_id'); 
$this->db->from('emp_position'); 
$this->db->where('emp_position.position','c'); 
$this->db->where_not_in('emp_position.employee_id',$data); 
$query=$this->db->get('',$evdata); 
return $query->result(); 

}

Es spielt keine korrekte Ergebnis. Also habe ich den folgenden Teil entfernt und überprüft.

$this->db->where_not_in('emp_position.employee_id',$data); 

Beide Male gibt es das gleiche Ergebnis. Es scheint nur der erste, wo Zustand funktioniert.

Es folgt das Var_dump Ergebnis beiden Zeiten: Following is the var_dump result of both times.

Nach dem Code hinzufügen

$data     = $this->emp_event_model->get_current_employees($date); 

$newData = array(); 
foreach($data as $row) { 
    $newData[] = $row['employee_id']; 
    } 
$data = $newData; 

Es gibt diesen Fehler: in

enter image description here

+0

können Sie 'var_dump ($ data); 'sehen was ist das Ergebnis von $ Daten – Beginner

+0

Array (Größe = 5)
0 => Objekt (stdClass) [26] public 'employee_id' => string '2' (Länge = 1) 1 => Objekt (stdClass) [27] public 'employee_id' => string ‚3 '(Länge = 1) 2 => Objekt (stdClass) [28] public 'employee_id'=> string '7'(Länge = 1) 3 => Objekt (stdClass) [29] public' employee_id '=> String' 8 '(Länge = 1) 4 => Objekt (StdClass) [30] öffentliche' employee_id '=> Zeichenfolge' 9 '(Länge = 1) – Christeen

+0

Sie sind $ Daten Array muss sein 'array (1, 2, 3)' Format nicht 'array ('employee_id' => 1, 'employee_id' => 2, etc ...)' – Beginner

Antwort

0

Ihre $data Array sein muss Dieses Format

array(2, 3, 7, 8, 9) 

aber Ihr Array ist

array (size=5) 
0 => object(stdClass)[26] public 'employee_id' => string '2' (length=1) 
1 => object(stdClass)[27] public 'employee_id' => string '3' (length=1) 
2 => object(stdClass)[28] public 'employee_id' => string '7' (length=1) 
3 => object(stdClass)[29] public 'employee_id' => string '8' (length=1) 
4 => object(stdClass)[30] public 'employee_id' => string '9' (length=1) 

so Ihr Array

in Ihrem Controller restrukturieren
$newData = array(); 
foreach($data as $row) { 
    $newData[] = $row->employee_id; 
} 
$data = $newData; 

so wird diese

werden
array(2, 3, 7, 8, 9) 
+0

Es gibt dieses Array Fataler Fehler: Kann nicht Objekt des Typs StdClass als Array verwenden – Christeen

+0

@Christeen, was es gibt?können Sie einen Screenshot Ihres Codes, wie Sie das Array restrukturieren – Beginner

+1

Ich denke, es sollte sein $ newData [] = $ row-> employee_id; wie es ist ein Objekt kein Array –

Verwandte Themen