Jan: Dateien löschen welche zuvor über mysql abgefragt wurden

Hallo,

wollte bestimmte Dateien löschen, welche zuvor über mysql abgefragt wurden, sprich die Dateinamen.

dachte da an (Code):

my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;

my $id= 'id=' ;
my $str = join " OR $id " => @werte;

#Datenbank öffnen
$sth = $dbh->prepare("SELECT name_pic
            FROM $table1
         WHERE $id$str ") ;
$sth->execute ;

while (my @picdel= $sth->fetchrow_array() ) {
   unless( -d $_)  {
          unlink($pathofpictures.@picdel);
}
}

$sth->finish ;

geht so aber leider nicht ;(

Vielleicht einer n guten Vorschlag?

Mfg Jan

  1. Hi,

    wollte bestimmte Dateien löschen, welche zuvor über mysql abgefragt wurden, sprich die Dateinamen.

    dachte da an (Code):

    my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;

    my $id= 'id=' ;
    my $str = join " OR $id " => @werte;

    #Datenbank öffnen
    $sth = $dbh->prepare("SELECT name_pic
                FROM $table1
             WHERE $id$str ") ;
    $sth->execute ;

    while (my @picdel= $sth->fetchrow_array() ) {
       unless( -d $_)  {
              unlink($pathofpictures.@picdel);
    }
    }

    $sth->finish ;

    geht so aber leider nicht ;(

    Mach malö etwas Debugging!

    Lass dir mal den *Array* @picdel ausgeben und schau,
    was "$pathifpictures.@picdel" ausgibt :)

    Ciao,
      Wolfgang

  2. Hallo,

    my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;

    my $id= 'id=' ;
    my $str = join " OR $id " => @werte;
    $sth = $dbh->prepare("SELECT name_pic
                FROM $table1
             WHERE $id$str ") ;

    IMHO wäre ein 'WHERE ID IN ('.join(',',@werte).')' oder so ähnlich eleganter.

    while (my @picdel= $sth->fetchrow_array() ) {

    Da nur ein Wert pro Datensatz abgefragt wird würde IMHO

    while (my($picdel)= $sth->fetchrow_array() ) {

    besser passen, da klarer

    unless( -d $_)  {

    was ist das? Welchen Wert hat gerade $_?

    unlink($pathofpictures.@picdel);

    und hier dann auch
                 unlink($pathofpictures.$picdel);

    Grüße
      Klaus