2017-12-12 5 views
0

ich diesen Fehler in der oberen Sicht erhalten (auch die Ansicht Lasten richtig mit Daten wie erwartet)warnmeldung Illegal versetzem von Wo Funktion Mysql php

Ein PHP-Fehler

Severity aufgetreten: Meldung Warnung: Ungültige Offset-Typ Dateiname: Datenbank/DB_query_builder.php Backtrace:

Datei: C: 32: Funktion: \ wamp64 \ www \ procurement_v_alpha1 \ application \ Modelle Notifications.php Zeile \ wo

Mein Modell aussieht,

public function user_alert() 
    { 
     $session_data = $this->session->userdata['logged_in']; 
     $role = $session_data['role']; 
     $dept = $session_data['dept']; 

     $data_user = array(
      'role' => $role, 
      'dept' => $dept 
     ); 

     $role = $data_user['role']; 
     $this->db->from('notification'); 
     $this->db->select('pr_id,item_name,dept_division'); 
     $this->db->where($role, 0); 

     $query = $this->db->get(); 
     return $query -> result_array(); 
    } 

Könnt ihr mir dabei helfen? ist etwas falsch mit der Verwendung von "Wo" -Methode?

+0

sollte es 'Rolle' nicht' $ Rolle' sein – urfusion

+0

Ja, aber es ist eine Variable, ändert sich je nach Benutzer. Also gibt es eine Spalte für jede "Rolle", die ich brauche, um diese Spalte auszuwählen. Es funktionierte vorher ohne Sitzungsdaten. Aber jetzt bekomme ich diesen Fehler – Code551

+0

Aber ich denke, dass sein Feldname, der für jeden Benutzer gleich sein sollte und $ Rolle sollte Wert haben. Also sollte es '('Rolle', $ Rolle)' sein. Für weitere Details können Sie Ihre Tabellenstruktur hinzufügen? – urfusion

Antwort

0

Die Methode userdata() gibt NULL zurück, wenn das Element, auf das Sie zugreifen möchten, nicht vorhanden ist. Kann das der Fall sein? Vielleicht müssen Sie ein wenig überprüfen.

0

etwas falsch hier. $this->db->where($role, 0); $role haben einige Daten hier gegeben $role = $data_user['role'] Aber In where-Klausel müssen wir Feldnamen geben Aber Sie versuchen, Rollenwerte in where-Klausel übergeben Machen Sie es so etwas.

$this->db->where('role', 0) 

schreiben Feldname anstelle von 'role' Sie überprüfen möchten.