Katalog-Liste - Bedingung erkennt kein mehrfaches Tagging

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • toelsen
    Contao-Nutzer
    • 22.07.2009
    • 24

    #1

    Katalog-Liste - Bedingung erkennt kein mehrfaches Tagging

    Hallo zusammen,

    der Titel ist etwas schwierig formuliert, es geht um folgendes:

    Ich habe das Catalog und das catalog_ext modul installiert.

    Es existiert ein katalog mit 150 Produkten. Die datenmaske zur eingabe besteht aus mehreren textfeldern und 2 Feldern mit Typ Tags, einmal Hauptkategorie und einmal kategorie mit der unterauswahl-option. Auf den jeweiligen seiten werden über verschiedene Katalog Listen die Ausgaben gefiltert. Jeweils mit der kategoriebedingung (Beispiel "hauptkategorie = 8"). Ich verwende die ID (im Beispiel die 8) der Taxonomie einträge, alles funktioniert tadellos.

    Aber,

    wenn ich 2 Häkchen setze oder generell mehrfach tags setze, wird nur in der Liste das Produkt ausgegeben, welches den ersten eintrag in dem datenfeld hat.

    Also Beispiel:
    Artikel 1,

    Hauptkategorie: (2 tags gesetzt)

    -Mundschutz (x)
    -Kopfbedeckung (x)

    Wird so in die SQL Tabelle eingetragen:
    Artikel 1
    hauptkategoie 8, 9

    In der katalogliste mit der bedingung hauptkategorie = 9 wird der Artikel dann aber nicht angezeigt.


    Was muss ich tun, damit das funktioniert???

    Danke im Voraus, ich hoffe mir kann jemand weiterhelfen.
    Zuletzt geändert von MacKP; 10.02.2010, 14:05.
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo toelsen,
    da ja da drinn eine array gespeichert wird und nicht nur eine Zahl kann es so auch nicht funktionieren.
    Du könntest es mal mit where like o.ä. veruschen (bin da auch nicht gerade der Spezialist...).

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • toelsen
      Contao-Nutzer
      • 22.07.2009
      • 24

      #3
      Hi,

      danke für deine Antwort,

      also mit LIKE geht es schon mal etwas voran, allerdings ist es nicht genau das richtige denn ich kann nicht explizite Angaben machen, sondern nur mit Platzhaltern suchen.

      Also so kategorie LIKE '%9%'

      dann bekomme ich aber auch die ID 19,29 usw oder 91,92 usw, was ja nicht so sein soll.

      Gibt es weitere Lösungsansätze?

      Ich habe nun noch dies hier herausgefunden:


      Leider weiß ich nicht wie ich das in die Bedingung der Katalogliste eingeben muss.
      Zuletzt geändert von toelsen; 01.12.2009, 14:26.

      Kommentar

      • xtra
        Maintainer
        • 02.07.2009
        • 2007

        #4
        FIND_IN_SET(kategorie, 9)
        Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

        Kommentar

        • toelsen
          Contao-Nutzer
          • 22.07.2009
          • 24

          #5
          Super das ist es, vielen vielen Dank! Ich hatte ein Leerzeichen drin.

          Allerdings muss der Syntax so lauten:

          FIND_IN_SET('9',kategorie)

          Dieser Workaround dient dazu, dass das Multi Taggen funktioniert!!!
          Zuletzt geändert von toelsen; 01.12.2009, 14:39.

          Kommentar

          • Chris87
            Contao-Fan
            • 08.12.2009
            • 719

            #6
            Was muss man machen, wenn man zwei Sachen abfragen möchte, z.B:
            • FIND_IN_SET('35',anzeigenseite)
            • FIND_IN_SET('38',einsatzgebietkategorie)


            Wie muss ich das in das Bedingungs-Feld reinschreiben? Kommagetrennt oder mit Leerzeichen dazwischen funktioniert nicht.

            Kommentar

            • xtra
              Maintainer
              • 02.07.2009
              • 2007

              #7
              Zitat von Chris87 Beitrag anzeigen
              • FIND_IN_SET('35',anzeigenseite)
              • FIND_IN_SET('38',einsatzgebietkategorie)

              Wie muss ich das in das Bedingungs-Feld reinschreiben? Kommagetrennt oder mit Leerzeichen dazwischen funktioniert nicht.
              Nah dran aber knapp vorbei
              Das ist normale SQL Syntax. Um in SQL mehrere Dinge abzufragen, kann man die Bindewoerter "AND" und "OR" verwenden.
              Du moechtest also:
              PHP-Code:
              FIND_IN_SET('35',anzeigenseite) AND FIND_IN_SET('38',einsatzgebietkategorie) 
              
              Um auf beides zu pryfen.

              Gruss
              Chris
              Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

              Kommentar

              • Chris87
                Contao-Fan
                • 08.12.2009
                • 719

                #8
                Ok, vielen Dank.

                Kommentar

                Lädt...