Error Number 1054 - Probleme bei der Sprachauswahl

yuro

Erfahrenes Mitglied
Servus,

hab da ein Problem. Und zwar wird meine Seite bei Google nicht gefunden (Status 500: Internal Server Error)

Folgendes Problem wurde angezeigt: Error Number 1054

A Database Error Occurred
Error Number: 1054 Unknown·column 'text_content_' in 'field list'
SELECT `text_content_` AS text_content, `menu`.`menu_name_` AS menu_name, `banner
FROM (`content`)
LEFT JOIN `menu` ON `menu`.`content_id` = `content`.`content_id´
WHERE `content`.`content_id` = 1

In folgender Datei ist der Teil programmiert:

model_content.php:
PHP:
   public function getContentDatabyId($id)
   {
      $this->db->select('text_content_'.$this->session->userdata('web_lang').' AS text_content, menu.menu_name_'.$this->session->userdata('web_lang').' AS menu_name,banner');
	   $this->db->from($this->_tablesincorporated['content']);
	   $this->db->join($this->_tablesincorporated['menu'], 'menu.content_id = content.content_id', 'LEFT');
	   $this->db->where("content.content_id",$id);
	   $query = $this->db->get(); //**
      
      if($query->num_rows())
      {
         return $query->row();
      } else {
         return FALSE;
      }
   }

Wenn ich den Teil mit dem kommentierten Doppelstern lösche ist der Status zwar auf 200 (OK) aber dann zeigt er mir erneuert fehler auf der webseite an.

Es wird behauptet das die Spalte unbekannt ist. "web_lang" sucht sozusagen den richtigen ordner raus, d.h. also "de", "en", "it" oder "fr". in der datenbank sind die spaltennamen einmal in der tabelle "content" "text_content_de" usw. und einmal in der tabelle "menu" "menu_name_de" usw.

Wie kann ich das jetzt umformen? sodass er mir den status 200 zurückgibt und auch die fehlermeldung ned kommt das es unbekannt ist.
 
OK, ist schwer da wir $this->db nicht kennen.

Die Fehlermeldung sagt aus, dass das Feld 'text_content_' in der DB nicht bekannt ist. Gemäss deinem PHP-Code müsste aber nach dem _ noch etwas angehängt werden.
Ergo gibt $this->session->userdata('web_lang') keine Daten zurück, ansonsten würde das Feld nicht 'text_content_' sondern 'text_content_irgendwas' heissen
 
also er soll ja die jeweilige sprache aus der datenbank auswählen. auf dem server sind verschiedene ordner mit den abkürzungen angelegt.. de,en,it,fr .

das sind vorgefertigte definitionen von dem PHP Framework CodeIgniter.

Magste mal reinschauen dann schick ich dir die url.
 
Die Fehlermeldung sagt aus, dass das Feld 'text_content_' in der DB nicht bekannt ist. Gemäss deinem PHP-Code müsste aber nach dem _ noch etwas angehängt werden.
Ergo gibt $this->session->userdata('web_lang') keine Daten zurück, ansonsten würde das Feld nicht 'text_content_' sondern 'text_content_irgendwas' heissen

Mach einfach mal ein var_dump() auf $this->session->userdata('web_lang') und schau selber was dabei rauskommt.
Ansonsten: PHP MySQL Debug Queries
 
Zurück