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