tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
295
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hups1803 hups1803 ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    159
    Hallo,

    ich benutze den Explorer filemanager und möchte die lösch funktion erweitern so das er die daten aus der datenbank ebenfals löscht.

    folgende fun_del.php habe ich

    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    
    function del_items($dir)
    {
        // check if user is allowed to delete files
        if (!permissions_grant($dir, NULL, "delete"))
            show_error($GLOBALS["error_msg"]["accessfunc"]);
        
        $cnt=count($GLOBALS['__POST']["selitems"]);
        $err=false;
        
        // delete files & check for errors
        for($i=0;$i<$cnt;++$i) {
            $items[$i] = stripslashes($GLOBALS['__POST']["selitems"][$i]);
            $abs = get_abs_item($dir,$items[$i]);
        
            if(!@file_exists(get_abs_item($dir, $items[$i]))) {
                $error[$i]=$GLOBALS["error_msg"]["itemexist"];
                $err=true;  continue;
            }
            if(!get_show_item($dir, $items[$i])) {
                $error[$i]=$GLOBALS["error_msg"]["accessitem"];
                $err=true;  continue;
            }
     
    //datenbank verbindung zum löschen
     $mysql = new db();
    $mysql->db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
      
     $row_count = $mysql->db_Delete("hupsi_share", "url IN(" . implode(',', $items[$i]) . ")"); 
        
            // Delete
            $ok=remove(get_abs_item($dir,$items[$i]));
            
            if($ok===false) {
                $error[$i]=$GLOBALS["error_msg"]["delitem"];
                $err=true;  continue;
            }
            
            $error[$i]=NULL;
        }
        
        if($err) {          // there were errors
            $err_msg="";
            for($i=0;$i<$cnt;++$i) {
                if($error[$i]==NULL) continue;
                
                $err_msg .= $items[$i]." : ".$error[$i]."<BR>\n";
            }
            show_error($err_msg);
        }
        
        header("Location: ".make_link("list",$dir,NULL));
    }

    die checkbox seht so aus

    Code :
    1
    
    <input type="checkbox" onclick="javascript:Toggle(this);" value="hups_bridge_to_eternity_by_nmsmith.jpg" name="selitems[]">

    ich bekomme das irgenwie nicht hin

    diese zeile macht mir kopfschmerzen

    url IN(" . implode(',', $items[$i]) . ")

    wie lösche ich in diesen fall daten aus der db auch wenn mehrere Checkboxen angecklickt sind

    hatte das

    PHP-Code:
    //datenbank verbindung zum löschen
     
    $mysql = new db();
    $mysql->db_Connect($mySQLserver$mySQLuser$mySQLpassword$mySQLdefaultdb);
      
     
    $row_count $mysql->db_Delete("hupsi_share""url IN(" implode(','$items[$i]) . ")"); 
    vor dem eigendlichen remove eingefügt
    Geändert von hups1803 (12.02.12 um 10:58 Uhr)
     

  2. #2
    hups1803 hups1803 ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    159
    ok soweit hab ich es hinbekommen das er die files in der db löscht

    PHP-Code:
    $row_count $mysql->db_Delete("hupsi_share""url = '".$items[$i]."'"); 
    jetzt wird es kompliziert, wenn ich nun einen Ordner samt inhalt im explorer lösche mach er immoment nix nur files gehen ohne ordner.

    Die rmove Zeile sieht so aus

    PHP-Code:
    $ok=remove(get_abs_item($dir,$items[$i])); 
    wie muss ich es machen das wenn man im explorer einen ordner löscht der Inhalt auch aus der DB gelöscht wird?
     

  3. #3
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Wie sieht denn die zugehörige Datenbanktabelle aus? Vermutlich hat jeder Datensatz eine ID und eine Eltern-ID. Du musst die ID des Verzeichnisses löschen und anhand dieser die Datensätze finden, die diese als Eltern-ID haben. Die kannst du auch löschen. Du musst aber auch darauf achten, dass du theoretisch auch Verzeichnisse in Verzeichnissen hast. Dementsprechend musst du das vielleicht rekursiv lösen. Oder Yaslaw hat wieder eine geniale Umsetzung in SQL, die ich dir aber nicht bieten kann.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  4. #4
    hups1803 hups1803 ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    159
    die tabelle sieht so aus

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    `id` int(11) NOT NULL AUTO_INCREMENT,
      `usersess` text,
      `user_id` int(11) DEFAULT NULL,
      `user_name` varchar(255) DEFAULT NULL,
      `url` varchar(155) DEFAULT NULL,
      `prof` text,
      `profname` varchar(255) DEFAULT NULL,
      `dl_pfad` text,
      `comments` text,
      `xmail` varchar(255) DEFAULT NULL,
      `profmail` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
     

  5. #5
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Wie jetzt? Und wie sind da jetzt die Daten gespeichert? Also könnte man da mal einen kurzen Auszug davon sehen? Weil dort ist doch nicht normalisiert und nichts sinnvoll organisiert.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  6. #6
    hups1803 hups1803 ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    159
    Halo,

    Sorry hier die db mit den Einträgen

    dl_pfad ist der pfad zum Ordner

    dlete mehrere Dateien vom ordner und datenbank-db.png
     

  7. #7
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Es bleibt dabei: normalisiere deine Tabelle, ansonsten wird das hier unnötig kompliziert.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ich sehe in deinen Daten der DB keinen Ordner sondern nur Dateinamen. Sind die Dateinamen über die Ordner hinweg eindeutig? Oder woher weiss dein Code in welchem Ordner die Datei aus deiner Tabelle liegt?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    hups1803 hups1803 ist offline Mitglied Gold
    Registriert seit
    Jan 2008
    Beiträge
    159
    die dateien sind eindeutig der pfad zur datei setzt sich aus dl_pfad + url zusamen

    die daten aus der url sprich die dateinamen sind einzigartig darüber könnet man es machen .

    habe ich hier beim einzel löschen auch so gemacht.

    PHP-Code:
    $row_count $mysql->db_Delete("hupsi_share""url = '".$items[$i]."'"); 
    $items[$i] == bildername== datenbank-feld url

    es gibt in der datenbank leider keine ordner namen alleine nur als pfad in dem db Feld dl_pfad
     

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 11.04.10, 08:27
  2. Antworten: 0
    Letzter Beitrag: 03.02.08, 14:10
  3. mehrere Dateien in Datenbank abspeichern
    Von ig00110 im Forum PHP
    Antworten: 0
    Letzter Beitrag: 18.03.07, 15:37
  4. Antworten: 6
    Letzter Beitrag: 21.05.06, 17:50
  5. Antworten: 3
    Letzter Beitrag: 12.06.04, 00:52