Kategoriezuweisung von Artikeln

Thema wurde von soprao, 23. April 2015 erstellt.

  1. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Hallo liebes Gambio-Forum,

    Meinen Shop habe ich hinsichtlich der Datenbank und dem Frontend angepasst, um mir weitere Informationen anzeigen zu lassen bzw. den CSV Import zu automatisieren. Aus diesem Grund habe ich in der Tabelle "product_to_categories" die product_id auf "UNIQUE" gesetzt - eben weil jeder Artikel genauer einer Kategorie zugeordnet werden soll.

    Nehme ich jetzt einen importierten Artikel, verändere seine Eigenschaft und speichere dann, erhalte ich den berüchtigten SQL Error:

    Code:
    2015-04-22 18:04:44 (4b996b50f310c7ff43719f0723200c14) SQL ERROR(1062): "Duplicate entry '5819' for key 'products_id'" in /var/www/web45/html/000/inc/xtc_db_error.inc.php:23 (Details)
    #4	File: /var/www/web45/html/000/inc/xtc_db_error.inc.php:23
    #3	File: /var/www/web45/html/000/inc/xtc_db_query.inc.php:77
    #2	File: /var/www/web45/html/000/admin/includes/classes/categories.php:2260
    #1	File: /var/www/web45/html/000/admin/includes/classes/categories.php:804
    #0	File: /var/www/web45/html/000/admin/categories.php:181
    Request: POST /000/admin/categories.php?cPath=12_47&pID=5819&action=update_product (Details)
    Post:  (Details)
    Get:  (Details)
    Information:
    Query:
    [B]INSERT INTO products_to_categories
    						                          SET products_id   = '5819',
    						                          categories_id = '0[/B]'
    Der Fehler ist eindeutig: Dadurch, dass ich keine weitere Kategorie zulasse, kann er mit dem SQL Statement auch nichts machen.

    Verwundert hatte mich die Tatsache, dass man beim Erstellen eines neuen Artikels diesen nicht direkt einer Kategorie zuweisen kann. Wenn ein entsprechendes Dropdown Feld verfügbar ist, würde die Fehlermeldung verschwinden - zumal ich diesen Punkt deutlich benutzerfreundlicher finde.

    Daher meine Frage: Gibt es bereits eine Anleitung oder ein Fix für die Kategoriezuweisung? Falls nein, sind euch etwaige andere Themen bekannt, in denen man Tipps zur eigenen Programmierung erhält?

    Danke und viele Grüße
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    10. August 2012
    Beiträge:
    1.554
    Danke erhalten:
    455
    Danke vergeben:
    96
    Ich würd das Feld einfach nicht auf Unique setzen. Selbst wenn man wie du jeden Artikel nur in einer Kategorie haben will, löst das doch nur unnötige Fehler aus, die an keiner Stelle abgefangen werden. Als simple Alternative kann man z.B. ab und an eine einfache SQL-Abfrage auf doppelte Datensätze in der products_id machen. Per Cronjob in nem Intervall ausgeführt und der Aufwand ist auch nicht sonderlich groß.

    Wenn du einen Artikel manuell neu anlegst, kannst du die Kategorie festlegen indem du vorher in die entsprechende Kategorie im Adminbereich gehst und erst von dort den Artikel anlegst. Falls du neue Artikel per CSV anlegst, kannst du dort festlegen in welche Kategorie der Artikel soll.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Hallo,
    categories_id = 0 ist die „Top“-Kategorie, also die Empfehlungen auf der Startseite. Auf das Feature müsstest du mit dem Unique-Index auf jeden Fall verzichten.
     
  4. soprao

    soprao Erfahrener Benutzer

    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Danke Marco, das war der entscheidende Hinweis, weshalb ich den Unique Key nicht mehr nutze.