Ankündigung

Einklappen
Keine Ankündigung bisher.

Unlink

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JEGO
    hat ein Thema erstellt Unlink.

    Unlink

    Hi Leute,

    folgendes Prob: ich hab hier nach Unlink gesuch und leider nur 3 Themen gefunden aus dem Zeug bin ich aber nicht schlau geworden.

    Ich habe Userbezogene Bildergalerien. und ich möchte beim Löschen nicht nur denn Datensatz löschen sondern auch das Bild.
    könnt Ihr mir da weiterhelfen?

    Hier der Cod bis jetzt. :

    Code:
    include ("dbconnect.php");
    
    $user = $_SESSION['MM_Username'];  
           
    if (isset($_GET['delete_id'])){ 
       // (Alle Datensätze)/den Datensatz löschen, deren id = der id des ausgewählten Datensatzes ist 
       $sql = "DELETE FROM bildergalerie WHERE id=".$_GET['delete_id']." "; 
       $res = mysql_query($sql); 
    } else { 
      // DATENSÄTZE AUS DB HOLEN UND AUSGEBEN 
      $sql_sel = "SELECT * FROM bildergalerie WHERE benutzer= '$user' ORDER BY `id` DESC"; 
      $res = mysql_query($sql_sel); 
      echo "<table> \n"; 
      while ( $row = mysql_fetch_array($res)) { 
            echo "<tr> \n"; 
    
          echo "<td width=\"10%\">".$row['id']."</td> \n"; 
          echo "<td width=\"60%\">".$row['bild']."</td> \n"; 
          echo "<td width=\"15%\">".$row['beschreibung']."</td> \n";          
           
          echo "<td width=\"12%\"> "; 
          //id des zu löschenden Datensatzes übergeben 
          echo "<a href=\"".$_SERVER['PHP_SELF']. "?delete_id=".$row['id']."\"> "; 
          echo "löschen</a></td> \n"; 
    
          echo "</tr> \n"; 
      }  // END WHILE 
    
      echo "</table> \n"; 
    }
    Ps: session_start(); steht natürlich auch da aber weiter oben.

  • JEGO
    antwortet
    @ meikel

    es hat zwar so auch gefunzt aber du hast schon recht.
    So ist es auf jedenfall besser.

    Danke Dir :wink:

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von JEGO
    So ich hab mal was probiert:
    Da sind noch zwei Fehler drin. Der eine ist bekannt, der andere betrifft Deine SELECT Abfrage.

    Code:
    include('dbconnect.php');
    $bildnr = $_GET['ID'];
    $pfad = '../kundenbilder/';
    
    $sql = "SELECT bild FROM bildergalerie WHERE ID= '$bildnr'"; # Du suchst ja nur den Namen
    $bild = @mysql_result(@mysql_query($sql),0,0); # Fehlerauswertung in der nächsten Zeile
    
    if ($bild != false AND is_writable($pfad.$bild) AND unlink($pfad.$bild))
    {
       $sql = "DELETE FROM bildergalerie WHERE ID='$bildnr'"; 
       mysql_query($sql);
       echo "das Bild $bild wurde gelöscht";
    }

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    Danke das wars.

    Einen Kommentar schreiben:


  • Thice
    antwortet
    mach
    Code:
    unlink('../kundenbilder/'.$bild)
    draus sonst wird die Variable nicht ausgelesen.

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    So ich hab mal was probiert:

    ich schicke die ID des zulöschenden Datensatze an eine datei.

    Diese sieht so aus:
    Code:
    include('dbconnect.php');
    
    $bildnr = $_GET['ID'];
    
    $sql_sel = "SELECT * FROM bildergalerie WHERE ID= '$bildnr'"; 
      $res = mysql_query($sql_sel); 
      
    $bild = $res['bild'];
    
    if (unlink('../kundenbilder/$bild'))        // Line 11
    {
    
    
      $sql_del = "DELETE FROM bildergalerie WHERE ID='$bildnr'"; 
       $res = mysql_query($sql_del);
       
       
        echo "das Bild wurde gelöscht";
    }
    leider ist da ein Fehler drin.

    Warning: unlink(../kundenbilder/$bild): No such file or directory in F:\Internet\24tourist\kunden\sloesch_bild.php on line 11


    weis einer was ich falsch gemacht habe?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von JEGO
    aber so wie du das beschreibst muß er erst das bild und dann denn Datensatz löschen.
    Richtig. Wenn der Datensatz weg ist, kommt man ja sonst nicht mehr an den Namen des Bildes, das man löschen will.
    kann man das nicht irgenwie mit einmal klicken erledigen?
    Na klar kann man das:
    - Datensatz lesen, um den Namen des Bildes zu erhalten.
    - Datensatz löschen
    - Bild löschen

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    Das prob ist ich möchte das der User nur einmal Löschen anklicken braucht.

    aber so wie du das beschreibst muß er erst das bild und dann denn Datensatz löschen.
    kann man das nicht irgenwie mit einmal klicken erledigen?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    "Gleichzeitig" gibt es nicht. "Nacheinander" ist richtig.

    Im Datensatz sollte der Pfad zur jeweiligen Datei liegen. D.h. du liest den Datensatz VOR dem Löschen aus und erhältst den Pfad, den du unlink() übergibst. NACH dem Löschen der Datei löscht du den Datensatz. Wo genau liegt das Problem?

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    Allso irgendwie hab ich das gefühl das sich keiner anschaut was ich da bereits gemacht habe.

    allso:

    1. Datensatz holen:
    Code:
    // DATENSÄTZE AUS DB HOLEN UND AUSGEBEN 
      $sql_sel = "SELECT * FROM bildergalerie WHERE benutzer= '$user' ORDER BY `id` DESC"; 
      $res = mysql_query($sql_sel); 
      echo "<table> \n"; 
      while ( $row = mysql_fetch_array($res)) { 
            echo "<tr> \n"; 
    
          echo "<td width=\"10%\">".$row['id']."</td> \n"; 
          echo "<td width=\"60%\">".$row['bild']."</td> \n"; 
          echo "<td width=\"15%\">".$row['beschreibung']."</td> \n";          
            
          echo "<td width=\"12%\"> ";
    3. Datensatz löschen

    Code:
    if (isset($_GET['delete_id'])){ 
       // (Alle Datensätze)/den Datensatz löschen, deren id = der id des ausgewählten Datensatzes ist 
       $sql = "DELETE FROM bildergalerie WHERE id=".$_GET['delete_id']." "; 
       $res = mysql_query($sql);
    und

    Code:
    //id des zu löschenden Datensatzes übergeben 
          echo "<a href=\"".$_SERVER['PHP_SELF']. "?delete_id=".$row['id']."\"> "; 
          echo "löschen</a></td> \n";

    und dazwischen sollte igendwie der Punkt 2.

    und der sollte gleichzeitig ausgefürt werden wie Punkt 3.

    aber wie mach ich das ???????????????

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    1. Datensatz holen
    2. Datei mit Dateiname aus Datensatz löschen
    3. Datensatz löschen

    HTH

    Einen Kommentar schreiben:


  • Thice
    antwortet
    Mach doch erstmal ne Abfrage, die den Dateinamen ermittelt. Dann löscht du die Datei, wie oben beschrieben und dann noch den Datensatz aus der Datenbank.

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    Das ist mir ja auch klar.

    aber wie du oben sehen kannst, lösche ich den Datensatz mit Klick auf denn löschen link.

    mein problem ist wie ich das Unlink da jetz zum gleichzeitigen ausführen bekomme.
    und nur das file das ich ja auch durch klick auswähle.

    ich hoffe du verstehst was ich meine.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Du musst als Argument für unlink() nur den Pfad und den Dateinamen übrgeben. Also so:
    Code:
    unlink('./test/test.php');
    mfg RudiS

    Einen Kommentar schreiben:


  • JEGO
    antwortet
    Gibt es eigendlich auch ein Manual for Dummis ?

    Ich blick im Manual nie durch.
    So oft ich da schon was gesucht habe.

    Das ist mir zu komlizert gemacht. sorry.

    Einen Kommentar schreiben:

Lädt...
X