description aus db auslesen

Gesperrt
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

description aus db auslesen

Beitrag von stefkey » Do 2. Jan 2014, 00:24

Hallo,

ich möchte in einem Modul die Description für Bilder aus der Datenbank auslesen. Leider funktioniert das nicht. Wie kreise ich den Fehler ein?

HIer der Modulcode-Teil:

Code: Alles auswählen

    if (is_file($cfgClient[$client]['upload'].$value4.$file)) {
        $fileId=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg[tab][upl]." WHERE filename='".$file."'"));
        $fileId=$fileId[idupl];
        $fileMeta=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg[tab][upl_meta]." WHERE idupl='".$fileId."'"));

        if ($fileMeta[medianame]!="") $medianame=urldecode($fileMeta[description]);
        else $medianame=$file;
 
        if ($fileMeta[description]!="") $description=urldecode($fileMeta[description]);
        else $description="blah";
        $tpl->set('d', 'HREFORIGINAL', $phpSelf.$modRewriteFiller.'filename='.$file);
        
würde ja gerne mit folgendem etwas im Fronten sehen, ich sehe jedoch nichts!
echo $fileMeta[description];

Kann mir jemand einen Tip geben?

Danke und Grüße,
stefkey

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: description aus db auslesen

Beitrag von xmurrix » Do 2. Jan 2014, 10:57

Hallo stefkey,

warum das nicht klappt, kann mehrere Gründe haben.
...mysql_query("SELECT * FROM ".$cfg[tab][upl]." WHERE filename='".$file."'")...
Der Dateiname alleine könnte nicht ausreichend sein, um den richtigen Datensatz aus der upload-Tabelle auszulesen, verwende zusätzlich noch die Id des Mandanten und den Verzeichnisnamen in der SQL-Anweisung.
...mysql_query("SELECT * FROM ".$cfg[tab][upl_meta]." WHERE idupl='".$fileId."'")...
Hier kann auch idupl alleine nicht ausreichend sein, es ist durchaus möglich, dass du da die Beschreibung der falschen Sprachen bekommst, verwende hier zusätzlich noch die Id der aktuellen Sprache.
...mysql_fetch_assoc(mysql_query(...))...
Es ist auch möglich, dass die MySQL-Erweiterung in PHP nicht vorhanden ist, dann kannst du keine mysql_* Funktionen verwenden. Vielleicht ist bei dir MySQLi aktiviert, dann solltest du die mysqli_* Funktionen verwenden.
Würde dir aber empfehlen, dass du hier die in CONTENIDO vorhandene Datenbank-Klasse DB_Contenido verwendest, dann werden im Hintergrund die richtigen Funktionen für den Zugriff auf die Datenbank verwendet.

In deinem Fall müsste der Code folgendermaßen sein:

Code: Alles auswählen

    if (is_file($cfgClient[$client]['upload'].$value4.$file)) {
        $db = new DB_Contenido();
        $db->query("SELECT idupl FROM ".$cfg['tab']['upl']." WHERE filename='".$db->escape($file)."' AND dirname='".$db->escape($value4)."' AND idclient=".(int)$client);
        $db->next_record();
        echo "<pre>datensatz upload: " . print_r($db->Record, true) . "</pre>";
        $fileId = (int) $db->f('idupl');

        $db->query("SELECT * FROM ".$cfg['tab']['upl_meta']." WHERE idupl='".$fileId."' AND idlang=".(int)$lang);
        $db->next_record();
        echo "<pre>datensatz upload_meta: " . print_r($db->Record, true) . "</pre>";
        $fileMeta = $db->Record;

        if ($fileMeta[medianame]!="") $medianame=urldecode($fileMeta[description]);
        else $medianame=$file;
 
        if ($fileMeta[description]!="") $description=urldecode($fileMeta[description]);
        else $description="blah";
        $tpl->set('d', 'HREFORIGINAL', $phpSelf.$modRewriteFiller.'filename='.$file);
Die zusätzlichen Zeilen mit echo "<pre>..." sind für dich zum Debuggen, so kannst du sehen, ob die DB-Abfragen auch Einträge zurückliefern.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Re: description aus db auslesen

Beitrag von stefkey » Do 2. Jan 2014, 17:45

HERZLICHEN DANK! Ich habe am Ende deinen vorgeschlagenen Code genommen (ich hätte es ohne diesen nicht ohne Rückfragen umsetzen können :-( )
Deine Erklärungen verstehe ich zwar, aber zum Umsetzten reicht es nicht.
Genial! Es passt alles wie es soll und ist mit dem Code sogar noch richtig sauber umgesetzt.

Danke, danke!

PS So hat meine Freundin endlich auch mal eine ordentliche Bildergalerie.... lange hat sie dafür gebettelt :-(

Gesperrt