Dateiname aus Datenbank auslesen

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

Dateiname aus Datenbank auslesen

Beitrag von stefkey »

Hallo,

wie kann ich den folgende Funktion so umschreiben das der Dateinname und nicht die Description aus der Datenbank ausgelesen wird?

Ich meine das löst mein Problem, aber ich komme einfach nicht weiter.

Vielleicht hat ja jemand einen Tip.


Grüße und Danke,
stefkey



function ig_getMedienName($idupl) {

global $cfg, $cfgClient, $db, $client, $lang;

$cApiClient = new cApiClient($client);
$language_separator = $cApiClient->getProperty('language','separator');
if( is_numeric($idupl) ) {
//ID is a number
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;


} else {
//ID is a string
$path_parts = pathinfo($idupl);
$upload = $cfgClient[$client]['upl']['frontendpath'];
$len = strlen($upload);
$pos = strpos($idupl,$upload);
$dirname = substr($path_parts['dirname'],$pos+$len).'/';
$danis = $dirname.$path_parts['basename'];
$query = "SELECT
value
FROM
".$cfg["tab"]["properties"]."
WHERE
itemid = '".$dirname.$path_parts['basename']."' AND
name = 'medianame'
";
}
$db->query($query);
if( $db->next_record() ) {
return htmlspecialchars(urldecode($db->f("value")));
} else {
return '';
}
}
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Beitrag von dominik.ziegler »

Für die Datenbankabfrage ist folgender Code verantwortlich:

Code: Alles auswählen

//ID is a number
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
Wenn du SELECT description in SELECT filename umwandelst (natürlich in einer neuen Funktion), dürftest du eigentlich den Dateinamen aus der Datenbank erhalten.
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

Hallo Dominik,

leider funktioniert das nicht. Irgendwie liest die Funktion ja jetzt den "value" Wert aus der properties Tabelle. Da gibts aber kein Filename.

Warum eigentlich aus der properties Tabelle?


Hat jemand einen Hinweis?


Danke und Grüße,
stefkey
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Beitrag von frederic.schneider_4fb »

Nein. Mit der genannten Abfrage von Dominik wird der Eintrag "filename" aus der Tabelle "con_upload" ausgelesen. Von "properties" steht da null :?:.
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

ok, in der if Anweisung läuft aber der else -Fall und dort gehts zur probaties:



if( is_numeric($idupl) ) {
//ID is a number
$query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;


} else {
//ID is a string
$path_parts = pathinfo($idupl);
$upload = $cfgClient[$client]['upl']['frontendpath'];
$len = strlen($upload);
$pos = strpos($idupl,$upload);
$dirname = substr($path_parts['dirname'],$pos+$len).'/';
$danis = $dirname.$path_parts['basename'];
$query = "SELECT
value
FROM
".$cfg["tab"]["properties"]."
WHERE
itemid = '".$dirname.$path_parts['basename']."' AND
name = 'medianame'
";
}
$db->query($query);
if( $db->next_record() ) {
return htmlspecialchars(urldecode($db->f("value")));
} else {
return '';
}
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

In dieser Funktion läuf der else-Fall aber nur, wenn du die Funktion mit einem String aufrufst. Und das macht nur Sinn, wenn dieser String der Dateiname ist (so ist die Funktion gedacht). Wenn Du die Funktion mit dem Dateinamen aufrufst brauchst Du den Dateinamen aber nicht zurück, oder?

Schreib bitte welche Informationen der Datei Du hast, und welche Du brauchst. Zur Not mit Beispiel.
Bis dann
Tono
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

ok, der String ist aber:

/home/www/webxxx/html/markus/upload/bildergalerie/kl/backstage.jpg

ich möchte am liebsten nur

"backstage"

Geht das irgendwie mit [basename]

1000 Dank und Grüße,
stefkey
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

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

Beitrag von stefkey »

super, hat geklappt.

Vielen Dank!

Grüße,
stefkey

PS Dateinamen mit einem + Zeichen werden in der Dateiverwaltung nicht angezeigt? Ist das ein kleiner Bug?
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Da würde ich mal blind auf urlencode / urldecode tippen. Ich guck mal rein.
Bis dann
Tono
Gesperrt