tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
172
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Johanni Johanni ist offline Mitglied Silber
    Registriert seit
    Sep 2007
    Beiträge
    54
    Guten Tag!
    Ich habe ein deletescript gebastelt, dass auf meine Datenbank zugreift und den entsprechenden Datensatz löscht. Welcher Datensatz gelöscht werden soll, kann man durch eine Option Box entscheiden die jeweils das DB-Feld "name" ausgebiebt.
    d.h. ich habe z.B 2 Datensatze iin meiner DB wobei der 1. Datensatz durch name "Beispiel1" und der zweite durch "Beispiel2" beschrieben ist.
    Dies klappt auch wunderbar, nun kommt der schwere Teil:
    In meiner DB sind natürlich mehr Felder zu jedem Datensatz, unter anderem auch das Feld: "download" in dem der dateiname + suffix steht. z.b. für den ersten Datensatz test.txt und für den zweiten beispiel.zip.

    Ich möchte gerne, dass wenn man einen Datensatz löscht, dass auch die entspürechende Datei die im Datensatz unter Download angegeben ist, gelöscht wird.
    In dem unten stehendem Script habe ich die stelle, in der ich das unlink-script eingefügt habe, markiert.
    Jedoch weiß ich nicht, wie ich die variable Download aus dem entsprechenden Datensatz dort einlese, da ich ja bei der optbox nur die "namen" anzeigen lasse.

    Hat jemand eine Idee?

    Danke und Gruss
    Johanni

    PHP-Code:
    <?php
    include("include.php");
    doDB();

    if (!
    $_POST)  {
        
    //haven't seen the selection form, so show it
        
    $display_block "<h1>Select an Entry</h1>";

        
    //get parts of records
        
    $get_list_sql "SELECT id,
                         CONCAT_WS(', ', name) AS display_name
                         FROM alben ORDER BY name"
    ;
        
    $get_list_res mysqli_query($mysqli$get_list_sql) or die(mysqli_error($mysqli));

        if (
    mysqli_num_rows($get_list_res) < 1) {
            
    //no records
            
    $display_block .= "<p><em>Keine Datensätze zum löschen vorhanden!</em></p>";

        } else {
            
    //has records, so get results and print in a form
            
    $display_block .= "
            <form method=\"post\" action=\""
    .$_SERVER["PHP_SELF"]."\">
            <p><strong>Wähle einen Datensatz:</strong><br/>
            <select name=\"sel_id\">
            <option value=\"\">-- Wähle --</option>"
    ;

            while (
    $recs mysqli_fetch_array($get_list_res)) {
                
    $id $recs['id'];
                
    $display_name stripslashes($recs['display_name']);

                
    $display_block .= "<option value=\"".$id."\">".$display_name."</option>";
            }

            
    $display_block .= "
            </select>
            <p><input type=\"submit\" name=\"submit\" value=\"löschen\"></p>
            </form>"
    ;
        }
        
    //free result
        
    mysqli_free_result($get_list_res);

    } else if (
    $_POST) {
        
    //check for required fields
        
    if ($_POST["sel_id"] == "")  {
            
    header("Location: delentry.php");
            exit;
        }
        
    // delete function                -> this is what it is about
        
    $del_file = ($_POST['sel_id']);
        
    unlink($del_file);
        
    // end delete function            
        //issue queries
        
    $del_master_sql "DELETE FROM alben WHERE id = '".$_POST["sel_id"]."'";
        
    $del_master_res mysqli_query($mysqli$del_master_sql) or die(mysqli_error($mysqli));
        
        
    $display_block "<h1>Datensatz gelöscht</h1>
        <p>Einen weiteren Datensatz 
        <a href=\""
    .$_SERVER["PHP_SELF"]."\">löschen</a>?</p>";
    }
    ?>
    <html>
    <head>
    <title>My Records</title>
    </head>
    <body>
    <?php echo $display_block?>
    </body>
    </html>
     

  2. #2
    Johanni Johanni ist offline Mitglied Silber
    Registriert seit
    Sep 2007
    Beiträge
    54
    Achso, sollte vielleicht noch sagen, dass ich momentan "Sel_id" eingegeben habe, dass würde jedoch den wert des feldes "namen" löschen, aber das ist ja nun keine datei.
     

  3. #3
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Hab ich dich richtig verstanden? Du willst kaskadierend löschen?
    Falls ja:
    Wenn du deine Foreign keys richtig gesetzt hast, kannst du das DBMS die Arbeit übernehmen lassen: http://dev.mysql.com/doc/refman/5.0/...nstraints.html
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. Hibernate Delete Problem
    Von alaska94 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 14.09.09, 16:14
  2. Pn-script... Problem mit DELETE/UPDATE...
    Von Tobbes im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 01.07.06, 01:28
  3. DELETE Problem
    Von tschimo im Forum PHP
    Antworten: 10
    Letzter Beitrag: 25.11.05, 12:58
  4. Upload script mit delete Button?
    Von pamax im Forum PHP
    Antworten: 1
    Letzter Beitrag: 12.06.05, 17:24
  5. Antworten: 6
    Letzter Beitrag: 21.03.03, 23:24