Datenbank-Fehler: Column not found

Hallo zusammen, Ich habe die Erweiterung der Einkaufswelten wie hier beschrieben vorgenommen. Nur kurz zur Erklärung: Für diese Änderung muss die promotion_inline.php, die sArticles.php und promotion_image.tpl geändert werden. Dann muss noch folgender Schritt durchgeführt werden: [quote]In der Datenbank-Tabelle s_emarketing_promotions zusätzlich ein neues Feld hinzufügen mit dem Namen mcstxt[/quote] Das Feld habe ich per PHPmyAdmin als LONGTEXT angelegt und hinter die vorhandenen Einträge hinzugefügt. Ich habe das zuerst in meinem Testshop (1:1 Spiegellung vom LiveShop) nach Anleitung probiert - funktioniert perfekt. Dann habe ich es in den LiveShop übernehmen wollen - dann erscheint aber folgende folgende Fehlermeldung: [quote]Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘mcstxt’ in ‘field list’ in Vendor/Zend/library/Zend/Db/Statement/Pdo.php on line 234 Stack trace: #0 Vendor/Zend/library/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array) #1 Vendor/Zend/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) #2 Vendor/Zend/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(’???SELECT cate…’, Array) #3 Enlight/Components/Db/Adapter/Pdo/Mysql.php(50): Zend_Db_Adapter_Pdo_Abstract->query(’???SELECT cate…’, Array) #4 Vendor/Zend/library/Zend/Db/Adapter/Abstract.php(734): Enlight_Components_Db_Adapter_Pdo_Mysql->query(’???SELECT cate…’, Array) #5 Enlight/Components/Adodb.php(226): Zend_Db_Adapter_Abstract->fetchAll(’???SELECT cate…’, Array) #6 engine/core/class/sArticles.php(4002): Enlight_Components_Adodb->GetAll(’???SELECT cate…’) #7 Shopware/Controllers/Frontend/Index.php(20): sArticles->sGetPromotions(‘3’) #8 Enlight/Controller/Action.php(70): Shopware_Controllers_Frontend_Index->indexAction() #9 Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight_Controller_Action->dispatch(‘indexAction’) #10 Enlight/Controller/Front.php(99): Enlight_Controller_Dispatcher_DispatcherDefault->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #11 Shopware/Bootstrap.php(33): Enlight_Controller_Front->dispatch() #12 Enlight/Application.php(86): Shopware_Bootstrap->run() #13 shopware.php(6): Enlight_Application->run() #14 {main} [/quote] Konfig/DB/Datei/Template Caches hatte ich mehrmals gelöscht… Ich nehme nicht an, dass es grundsätzlich mit dem Tipp von askraba selbst zu tun hat, denn es funktioniert ja im Spiegelshop, das muss was anderes sein. Darum auch ein neuer Thread. Hat Jemand eine Idee, was das sein kann? Bin völlig ratlos… Grüße rattatui

Wie sieht die Tabelle jetzt auf Live aus? Einfach die Ausgabe von „describe s_emarketing_promotions“ (ausgeführt in phpMyAdmin) hier posten.

Hallo waldicom, danke schon mal. Wenn ich den Befehl eingebe, bekomme ich diese Ausgabe: [quote]Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment description varchar(50) NO NULL category int(11) NO MUL 0 mode varchar(40) NO NULL ordernumber varchar(255) NO 0 link varchar(255) NO NULL link_target varchar(50) NO NULL valid_from date NO 0000-00-00 valid_to date NO 0000-00-00 position int(11) NO 0 img varchar(255) NO NULL liveshoppingID int(11) unsigned NO NULL mcstxt longtext NO NULL [/quote] Kollation ist latin1_swedish_ci Das ist die Tabeelle des spiegelshops (wo es auch so funktioniert). Im Live Shop habe ich das Feld wieder gelöscht und die alten Files wieder eingesetzt, damit alles wie zuvor funktioniert… Grüße rattatui PS: ich bin mal wg eines Termins ca. 2 Std. offline - bitte nicht wundern wenn ich erst später Antworte. Vielen Dank für Deine Hilfe schon mal.

Ich dachte wirklich, dass es daran liegt, dass die Tabelle auf Live nicht aktualisiert wurde, aber wenn Du sagst, Du hast das Feld von Live gelöscht… Wurden die Dateien von Test auf Live kopiert oder direkt auf dem Server geändert? Die DB Änderungen wurden auf dem Live System gemacht oder von Live kopiert? Es kann ja nur daran liegen, dass ein Tippfehler sich irgendwo eingeschlichen hat.

Hallo nochmal schnell, das ist ja auch grade merkürdig - die Dateien, die 1:1 zu dem Spiegelshop sind, habe ich kopiert. sArticles.php ist etwas anders und das habe ich berücksichtigt und nochmal kontrolliert… Hast du noch eine Idee? Ansonsten muss ich das heute aben nochmal probieren - vielleicht ist die Reihenfolge entscheident? Ich muss leider erstmal los. :wtf: Grüße rattatui

Also zuerst würde ich natürlich das Feld in der Tabelle erstellen, das stört ja nicht. Und erst dann dürfen die *.php Dateien angepasst werden. Aber Du hast ja bestimmt zuerst alle Schritte gemacht und erst dann angefangen zu testen…

1 Like

Hallo, wie waldicom tippe ich hier auch auf einen kleinen Schreibfehler o.ä. in der sArticles.php z.B. Die Meldung besagte ja klar, dass in der Tabelle das Feld mcstxt nicht vorhanden ist!

1 Like

Hallo waldicom, hallo Sebastian, problem gelöst - irgendwie sind in der promotion_inline.php Zeile 194 zwei Leerzeichen reingekommen und die 496 war wohl nicht korrekt (gefunden mit WinMerge) weiss der Geier wie genau das passiert ist. Den DB-Eintrag habe ich diesmal auch als erstes gemacht, habe ich wohl auch so im Testsystem gemacht ohne drüber nachzudenken - vielleicht spielte das auch eine Rolle. Hauptsache es geht jetzt. Danke nochmals :happy: Grüße rattatui