Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Bildanzeige aus Datenbank

  1. #1
    Contao-Nutzer
    Registriert seit
    20.01.2021.
    Beiträge
    3

    Standard Bildanzeige aus Datenbank

    Hallo zusammen,

    ich versuche, derzeit eine Bildausgabe zu generieren und verzweifele dabei.

    Generell sollen User Bilder hochladen können und diese sollen auf einer entsprechenden Seite angezeigt werden. Dafür habe ich folgendes gemacht:

    • Eine Tabelle, welche unter anderem das Feld „data“, Datentyp varchar enthält (tl_listing)
    • Ein PHP-Script, das via insert-tag auf der entspr. Seite eingebunden ist


    Der Upload in Tabelle und File-System erfolgt mit dem „fine-Uploader“ von terminal42, Dateien werden in den Home-Verzeichnissen gespeichert.

    Der betreffende Code zur Abfrage der Daten sieht bisher wie folgt aus:

    PHP-Code:
    $sql "SELECT * FROM `tl_listing`;
    foreach (
    $pdo->query($sql) as $content) {
            
    $header = $content['Header'];                    
                
    $description = $content['description'];
            
    $data = $content['data'];
                } 
    Die $header und $description gebe ich einfach per „echo“ aus. Soweit so gut.

    Nun zu den Bildern:
    Trage ich nun, um einfach anzuzeigen, was in der Tabelle steht, „echo $data;“ ein, sieht die Ausgabe wie folgt aus:

    a:5:{i:0;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild1.JPG";i:1;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild2.JPG ";i:2;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild3.JPG ";i:3;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild4.JPG ";i:4;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild5.JPG ";}

    So wird es ja auch in die Tabelle eingetragen. Meine Fragen sind nun, da man ja schließlich auch was lernen will:

    1. Wie nennt sich das Konstrukt a:5:{i:0;s:71…} überhaupt? Ist das ein SQL-Array oder wie wird das bezeichnet? Ich bin wenigstens soweit, dass ich verstanden habe, dass die Zahl hinter a: die Anzahl der folgenden Einträge ist, i ist dann die fortlaufende Nummer, nur s erschließt sich mir noch nicht.
    2. Wie kann ich den eigentlichen Pfad auslesen? Also „files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild1.JPG“


    Nutze ich das Modul „Auflistung“ von Contao, wird dieses Konstrukt nämlich genauso ausgegeben, wie ich es gerne hätte (files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild1.JPG, files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild2.JPG etc). Also muss es ja irgendwie gehen. Ich bin aber dank Google- und Forensuche soweit, dass ich jetzt komplett auf dem Holzweg bin.

    Da ich mit der entspr. Seite noch ein paar andere Dinge vorhabe, u.A. die Abfrage an Bedingungen binden, scheint es mir sinnvoller, die Bilder über das PHP-Script auszulesen und anzuzeigen.
    Ziel des ganzen soll sein, dass man bei Anklicken der Bilder nicht etwa das Bild in einer Lightbox sieht, sondern auf eine eigene Seite mit z.B. Kommentarfunktionen kommt. Daher glaube ich, dass die Bordmittel hier nicht alle Anforderungen erfüllen.

    Wenn jemand aber eine ganz andere Lösung mit Bordmitteln von Contao hat, wäre ich auch dankbar.

    Vielen Dank für eure Antworten vorab.

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

    Standard

    Zitat Zitat von D4R Beitrag anzeigen
    Nun zu den Bildern:
    Trage ich nun, um einfach anzuzeigen, was in der Tabelle steht, „echo $data;“ ein, sieht die Ausgabe wie folgt aus:

    a:5:{i:0;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild1.JPG";i:1;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild2.JPG ";i:2;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild3.JPG ";i:3;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild4.JPG ";i:4;s:71:"files/Wurzelverzeichnis/Home-Verzeichnisse/ Besipieluser/Bild5.JPG ";}

    So wird es ja auch in die Tabelle eingetragen. Meine Fragen sind nun, da man ja schließlich auch was lernen will:

    1. Wie nennt sich das Konstrukt a:5:{i:0;s:71…} überhaupt? Ist das ein SQL-Array oder wie wird das bezeichnet? Ich bin wenigstens soweit, dass ich verstanden habe, dass die Zahl hinter a: die Anzahl der folgenden Einträge ist, i ist dann die fortlaufende Nummer, nur s erschließt sich mir noch nicht.
    2. Wie kann ich den eigentlichen Pfad auslesen? Also „files/Wurzelverzeichnis/Home-Verzeichnisse/Besipieluser/Bild1.JPG“
    Das ist ein serialisiertes Array. Das kannst du mit \Contao\StringUtil::deserialize deserialisieren.

  3. #3
    Contao-Nutzer
    Registriert seit
    20.01.2021.
    Beiträge
    3

    Beitrag

    DAAAAANKE!!!! Ich kann es zwar aktuell nicht testen, aber zumindest weiß ich nun nach Tagen ratloser Suche endlich, wie das Ding heißt!

    Schwer, etwas zu suchen, dessen Name man nicht kennt... Ich erspare mir jetzt mal, was alles rauskommt, wenn man "a:5:{i:0;s:71:" googelt

    Werde deine Lösung heute Nachmittag probieren!

  4. #4
    Contao-Nutzer
    Registriert seit
    20.01.2021.
    Beiträge
    3

    Daumen hoch

    Problem gelöst! Funktioniert bestens! Danke dir.

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
  •