Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: DB-Fehler nach Update auf 2.0.4.0

    Mike Randoo

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    DB-Fehler nach Update auf 2.0.4.0
    am: 15. Juli 2018, 15:41:56
    Hi Gemeinde,

    kurze Frage, da ich es nicht alleine finde.
    Habe grade auf 2.0.4.0 geupdatet. Sobald ich einen Artikel in den Warenkorb lege, wirft es mir diese Fehlermeldung aus. Die ID wechselt, wenn ich das Produkt im Warenkorb wechsele.
    Bei Vergleich von DB-Backups kann ich aber in den vorhandenen Spalten in den vermeintlichen Tabellen keine Unterschiede zu vor dem Update erkennen. Eine table "field list" gibt es bei mir auch nicht (wohl bei niemandem ;-) )

    Die beiden Spalten kommen höchstwahrscheinlich von zwei Modulen von Ronald. Hat inklusive 2.0.3.0 aber bisher immer völlig problemlos funktioniert.

    Code: SQL  [Auswählen]
    1054 - UNKNOWN COLUMN 'pd.products_img_title_text' IN 'field list'

    SELECT pd.products_img_title_text, pd.products_img_alt_text,
    p.products_id,
    p.products_price,
    p.products_discount_allowed,
    p.products_tax_class_id,
    p.products_weight
    FROM products p
    WHERE p.products_id='318'

    Wäre cool, wenn jemand einen Ansatz hätte. Sonst muss ich Update nochmal rückgängig machen und intensiver forschen.

    Danke und Grüße,
    Mike

    Linkback: https://www.modified-shop.org/forum/index.php?topic=39322.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #1 am: 15. Juli 2018, 17:19:21
    Hallo Mike,

    die Fehlermeldung moniert, das in der Tabelle, weil (pd.) wahrscheinlich,  products_description die Spalte products_img_title_text, welche im Abfrage-Statement steht, nicht existiert.

    Suche in einem älteren DB-Backupdump in der Tabelle products_description nach der Spalte products_img_title_text, dort sollte dann auch stehen von welchem Typ die Spalte ist. So und jetzt fügst Du z.B mit phpMyAdmin in der aktuellen Datenbank in die Tabelle products_description die Spalte  products_img_title_text mit den gleichen Typ Angaben wie im DB-Backupdump ein.

    Gruss
    Hanspeter

    Mike Randoo

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #2 am: 15. Juli 2018, 22:28:09
    Hallo Hanspeter,
    vielen Dank für Deine Antwort.
    Aber wie ich schon im Eröffnungspost schrieb, gibt es zu früheren Backups keine Unterschiede in den Spalten. Das ist ja das verwunderliche. Und es wäre so einfach zu beheben gewesen. Aber nein, muss ja kniffliger sein ;-)

    In der products_description hab ich immer diese beiden Variablen definiert, und immer gleich, auch gleich geschrieben:

    Code: SQL  [Auswählen]
     `products_img_alt_text` VARCHAR(255) DEFAULT NULL,
     `products_img_title_text` VARCHAR(255) DEFAULT NULL

    Die Fehler laufen aber auch nur auf, wenn ich einen Artikel in den Warenkorb lege und danach fast bei jedem Seitenaufruf. Habe ich keine Artikel im Warenkorb, scheint der DB-Fehler nicht zu passieren.

    Sehr strange für mich  :-?

    Mike

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #3 am: 15. Juli 2018, 22:56:34
    Aha, ja jetzt sehe ich es, die Abfrage hat einen Fehler sie darf nicht so ausehen,

    Code: PHP  [Auswählen]
    SELECT pd.products_img_title_text, pd.products_img_alt_text,
    p.products_id,
    p.products_price,
    p.products_discount_allowed,
    p.products_tax_class_id,
    p.products_weight
    FROM products p
    WHERE p.products_id='318'

    sondern sie müsste so aussehen.

    Code: PHP  [Auswählen]
    SELECT pd.products_img_title_text, pd.products_img_alt_text,
    p.products_id,
    p.products_price,
    p.products_discount_allowed,
    p.products_tax_class_id,
    p.products_weight
    FROM products p, products_description pd
    WHERE p.products_id='318'

    Die Frage ist jetzt natürlich in welcher Skriptdatei wird sie durchgeführt.

    Gruss
    Hanspeter

    Mike Randoo

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #4 am: 15. Juli 2018, 23:16:28
    Nachdem ich die DB auf die Version vor Update zurück gespielt habe und der gleiche Fehler aufgetreten ist, war mir schon klar, dass es kein DB-Problem sein kann.

    Nachdem ich nun das Backup gänzlich wieder hochgefahren habe und wieder auf 2.0.3.0 bin, werde ich mich jetzt mal auf die Suche nach der Datei mit der falschen Abfrage machen...

    Danke Dir erstmal für den wertvollen Tipp. Hoffe, ich komme der Ursache zeitnah auf den Grund.

    Guts Nächtle!
    Mike

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #5 am: 16. Juli 2018, 01:07:39
    Hallo Mike,

    vermutlich habe ich die fehlerverursachende Query gefunden.
    Ersetze doch mal testweise in /includes/classes/shopping_cart.php ca. Zeile 474 folgenden Code

    Code: PHP  [Auswählen]
          $product_query = xtc_db_query("SELECT ".ADD_SELECT_CART."
                                                p.products_id,
                                                p.products_price,
                                                p.products_discount_allowed,
                                                p.products_tax_class_id,
                                                p.products_weight
                                           FROM "
    .TABLE_PRODUCTS." p
                                          WHERE p.products_id='"
    .xtc_get_prid($products_id)."'");

    mit diesem Code.

    Code: PHP  [Auswählen]
          $product_query = xtc_db_query("SELECT ".ADD_SELECT_CART."
                                                p.products_id,
                                                p.products_price,
                                                p.products_discount_allowed,
                                                p.products_tax_class_id,
                                                p.products_weight
                                           FROM "
    .TABLE_PRODUCTS." p
                                           JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                          WHERE p.products_id='"
    .xtc_get_prid($products_id)."'");

    Hintergrund:
    Das eigentliche Problem ist das die Konstante ADD_SELECT_CART in obiger Query neu eingefügt wurde. Bisher war sie nur in folgender Query ca. Zeile 606 der /includes/classes/shopping_cart.php vorhanden, welche ja die Tabelle TABLE_PRODUCTS_DESCRIPTION in die Abfrage mit einbezieht. Somit ist natürlich ein Programmierer der per ADD_SELECT_CART einer Query Spalten hinzugefügt hat, davon ausgegangen, dass "pd.spaltenname" funktioniert.

    Code: PHP  [Auswählen]
            $products_query = xtc_db_query("SELECT ".ADD_SELECT_CART."
                                                   p.products_id,
                                                   pd.products_name,
                                                   pd.products_description,
                                                   pd.products_short_description,
                                                   pd.products_order_description,
                                                   p.products_shippingtime,
                                                   p.products_image,
                                                   p.products_model,
                                                   p.products_price,
                                                   p.products_ean,
                                                   p.products_vpe,
                                                   p.products_vpe_status,
                                                   p.products_vpe_value,
                                                   p.products_discount_allowed,
                                                   p.products_weight,
                                                   p.products_tax_class_id,
                                                   p.products_status,
                                                   p.products_fsk18,
                                                   p.products_price as products_price_origin,
                                                   p.products_quantity as products_stock
                                              FROM "
    .TABLE_PRODUCTS." p
                                              JOIN "
    .TABLE_PRODUCTS_DESCRIPTION." pd
                                                   ON pd.products_id = p.products_id
                                                      AND pd.language_id = '"
    .(int)$_SESSION['languages_id']."'
                                             WHERE p.products_id='"
    .xtc_get_prid($products_id)."'");

    Gruss
    Hanspeter

    Mike Randoo

    • Fördermitglied
    • Beiträge: 177
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #6 am: 16. Juli 2018, 21:44:52
    Hallo Hanspeter,

    ich vermute, Du hast das Schiff versenkt :-D
    Habe es vorhin nur mal schnell im Testshop eingespielt und dort ist im Anschluss der Fehler nicht mehr aufgetaucht. Von daher gehe ich mal davon aus, dass es im Hauptshop nachher auch in Ordnung sein müsste.

    Viiiiiiiiiiiiiiiiiiielen Dank!

    Diesen Fehler hätte ich im Leben nicht alleine behoben bekommen. Habe aber auch wieder ein Stück mehr gelernt und erinnere mich vielleicht beim nächsten ähnlichen Fall daran, wie es von Dir nun gelöst wurde.

    Spricht einmal mehr für dieses außergewöhnliche Forum!  :worship:

    Grüße,
    Mike

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #7 am: 19. Juli 2018, 08:14:53
    Keine Ursache, bemerkenswert ist aber, dass obwohl Ronald das Mudul in Bezug auf ADD_SELECT_CART ja update sicher, soweit es ihm bekannt war, eingebaut hat, es in der Version 2.0.4.0 zu Fehlermeldungen kommt. Den Grund sehe ich in der fehlenden Dokumentation der Shopsftware, an der sich sowohl Nutzer als auch Entwickler von modified orientieren könnten.

    Gruss
    Hanspeter

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.195
    • Geschlecht:
    Re: DB-Fehler nach Update auf 2.0.4.0
    Antwort #8 am: 02. August 2018, 23:31:56
    Ich habe das in Ticket #1511 festgehalten, damit die "/includes/classes/shopping_cart.php" entsprechend um den notwendigen JOIN erweitert wird.

    Grüße

    Torsten
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    1 Antworten
    1900 Aufrufe
    23. August 2018, 13:07:09 von Hetfield
    8 Antworten
    2106 Aufrufe
    11. Dezember 2019, 08:56:25 von Tomcraft
    9 Antworten
    6058 Aufrufe
    29. April 2016, 17:51:09 von Viol