Ergebnis 1 bis 6 von 6

Thema: Event-Kategorie SQL-Abfrage

  1. #1
    Contao-Nutzer
    Registriert seit
    08.09.2015.
    Beiträge
    49

    Frage Event-Kategorie SQL-Abfrage

    Hallo zusammen!

    Ich schreibe grade ein paar eigene SQL-Abfragen welche ich über php-Templates abfrage. Das funktioniert bis jetzt auch ganz gut.
    Allerdings benötige ich aktuell für eine Abfrage die Event-Kategorie eines Events.

    In der Tabelle 'tl_calendar_events' gibt es die Spalte 'categories', welche aber leider, auch bei unterschiedlichen Kategorien den Wert '[BLOB - 18 B]'.
    Wähle ich für ein Event zwei Kategorien aus, so wird in der Spalte der Wert '[BLOB - 42 B]' gespeichert - unabhängig von den ausgewählen Kategorien.

    Dann habe ich noch die Tabelle `tl_mae_event_cat`gefunden. Darin werden die Kategorien gespeichert (id, tstamp, title). Allerdings kann ich keine Verbindung zwischen einem Event und der Kategorie finden. Das bräuchte ich halt für die Abfrage.

    Kann mir jemand auf die Sprünge helfen?

    Grüße
    Kartenmann

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.949

    Standard

    In dem BLOB wird der serialisierte Array mit den Kategorien gespeichert. (Contao stellt Dir die Funktion deserialize() zur Verfügung, die eine erweiterte Version von PHPs unserialize() ist.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.390
    Partner-ID
    10107

    Standard

    Sieh dir den blob mal genauer an, dort steht wahrscheinlich als serialisiertes Array drin, zu welcher Kategorie das Event gehört.

    Nur bestimmte Events anhand deren Kategorie per SQL zu holen ist daher auch ein wenig ineffizient, da du hier sowas wie
    Code:
    … WHERE categories LIKE '%s:1:"1";%'
    machen musst.
    Geändert von Spooky (27.10.2015 um 14:06 Uhr)

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.949

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Code:
    … WHERE categories LIKE '%s:1:"1";%'
    Ich glaube Contao speichert die Werte als Strings, Bsp.
    Code:
    a:2:{i:0;s:1:"3";i:1;s:1:"7"}
    d.h. im serialisierten Array suchst Du nach %"3"% (für die Gruppe 3 => String "3"). Umständlich bleibt es aber trotzdem ;-)

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.390
    Partner-ID
    10107

    Standard

    Ja, sind strings, hab den Post dann noch geändert.

  6. #6
    Contao-Nutzer
    Registriert seit
    08.09.2015.
    Beiträge
    49

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Ich glaube Contao speichert die Werte als Strings, Bsp.
    Code:
    a:2:{i:0;s:1:"3";i:1;s:1:"7"}
    d.h. im serialisierten Array suchst Du nach %"3"% (für die Gruppe 3 => String "3"). Umständlich bleibt es aber trotzdem ;-)

    Hey, vielen Dank, das hat wunderbar funktioniert!

    Hintergrund: Ich wollte eine Terminübersicht anpassen und ich komme mit diesen Modultemplates nicht klar.
    Da dacht ich mir eben ein selbstgeschriebenes .php Template includen geht schneller als sich richtig in diese Module einzuarbeiten.

    Grüße
    Kartenmann

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •