2017-02-01 2 views
0

Hey Ich habe einen PHP-Code, der prüft, welche Zeilen Datum abgelaufen ist und löschen Sie, eine der Spalten ist ein Bildname, der auf den Server über FTP hochgeladen wurde, wenn ich alle abgelaufen löschen Ich möchte auch die Bilder löschen, die an sie angehängt sind. Ich lese über den unlink Befehl auf PHP, aber ich sehe nicht, wie ich es auf alle Bilder gleichzeitig anwenden kann.Bild aus Zeile löschen, die abgelaufen ist

Ich habe diesen Code, die ich gerade zum Beispiel rambled weil ich nicht wirklich wissen, wie es zu tun ..

 $sql = "DELETE FROM table WHERE date < NOW()"; 
mysqli_query($conn,$sql); 

$file = "public_html/images/".//Here should go the image name; 
unlink($file); 
if($sql) 
{ 
    echo "Records were deleted"; 
} 
?> 

Kann mir jemand sagen, wie kann ich alle Bilder löschen, die dem gelöschten angebracht sind Reihen?

+3

*** Sie müssen in der Gewohnheit [akzeptieren Antworten] erhalten (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ** * die Ihnen helfen, Ihre Probleme zu lösen. Sie erhalten Punkte und andere werden ermutigt, Ihnen zu helfen. –

+0

@JayBlanchard Sie haben Recht, ich werde damit anfangen :) – user7415791

+0

Sie müssen alle Zeilen auswählen, wo Datum RiggsFolly

Antwort

1

Wenn Sie die Zeilen aus der Tabelle in Ihrer Datenbank löschen und gleichzeitig die Bilder aus dem Ordner auf dem Server löschen möchten, auf dem Sie sie behalten, müssen Sie jeden Löschkandidaten nacheinander bearbeiten dass Sie den Dateinamen aus der Zeile abrufen können, um das Löschen der Datei gleichzeitig mit dem Löschen der Zeile auszuführen.

// connect to database 

$base_path = 'public_html/images/'; 
$del_count = 0; 

// SELECT all the delete candidates 
$sql = "SELECT id,image FROM table WHERE date < NOW()"; 
$sel4del = mysqli_query($conn,$sql); 
if (! $sel4del) { 
    echo $sel4del->error; 
    exit; 
} 

// prepare a delete by id 
$sql = 'DELETE FROM table WHERE id = ?'; 
$delrow = mysqli_prepare($conn,$sql); 
if (! $delrow) { 
    echo $delrow->error; 
    exit; 
} 

// Process all the delete candidates one by one 
while ($row = $sel4del->fetch_object()) { 
    // remove the file from disk 
    unlink($base_path . $row->image); 
    $del_count++; 

    // bind the current id to the prepared delete query 
    $delrow->bind_param('i', $row->id);  

    // execute the delete of this one row 
    $delrow->execute(); 
} 
echo 'images removed = ' . $del_count 
?> 
+0

Thakns! Es klappt! – user7415791

Verwandte Themen