• 24-08-2010, 15:01:27
    #1
    Alttaki kodla checkbox ile sectiğim konu tablosundaki ve buna bağlı olarak resimler tablosundaki verileri silebiliyorum. fakat depo klasörüne kayıt olan resimleri nasıl silicem bu kod icerisinde ?
    konu = id
    resimler = rid, resimad, idsi
    id = idsi


    <?
    
    if($_POST){
    foreach((array)$_POST['checkbox'] as $del_id):
    $sql = 'DELETE FROM konu WHERE id='.intval($del_id);
    $result = mysql_query($sql);
    $sqql = 'DELETE FROM resimler WHERE idsi='.intval($del_id);
    $result = mysql_query($sqql); 
    Echo ("<script language='javascript'>alert(' başarıyla silindi.');window.location = 'listele.php');</script>");
    endforeach;
    if($result){
    echo "<meta http-equiv=\"refresh\" content=\"0\">";
    }  
    }
    ?>
  • 24-08-2010, 20:16:54
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    resmin adını aldıktan sonra unlink ile silebilirsiniz.

    Örneğin:
    $dizin = "images/";
    $islem = unlink($dizin."dosya.txt");
    if($islem) {
      echo "Başarılı.";
    }
    else {
      echo "Başarısız.";
    }
    Bu şekilde deneyin hocam. Bir projemde kullanmıştım, çalışmıştı. Yanlız unlink fonksiyonu dosyayı server'a yazma hakkın varsa kullanabiliyorsun bildiğim kadarıyla. Ki upload edildiğine göre yazma hakkı var demektir. Umarım sonuç alırsınız.
  • 24-08-2010, 21:23:21
    #3
    Kodunuz tüm kullanıcılara açıksa id'yi silme yetkisi var mı kontrol etmeyi unutmayın.

    Bir de array döndüğü için sondaki $result ile kontrol yanlış olur, sadece son dosya başarıyla silindeyse, diğerleri başarısız olduysa bile doğru döndürür. Şu şekilde değiştirerek üstesinden gelinebilir;

    <?
    if($_POST){
    	$sonuc = 1;
    	foreach((array)$_POST['checkbox'] as $del_id):
    		$sql = 'DELETE FROM konu WHERE id='.intval($del_id);
    		$result = mysql_query($sql);
    		$sqql = 'DELETE FROM resimler WHERE idsi='.intval($del_id);
    		$result2 = mysql_query($sqql);
    		if($result && $result2) {
    			echo ("<script language='javascript'>alert('Başarıyla silindi.');window.location = 'listele.php');</script>");
    		} else {
    			echo ("<script language='javascript'>alert('Problem oluştu.');</script>");
    			$sonuc = 0;
    		}
    	endforeach;
    	if($sonuc){
    		echo "<meta http-equiv=\"refresh\" content=\"0\">";
    	}  
    }
    ?>
  • 25-08-2010, 16:37:23
    #4
    forumxtr saol ama ben bu kod içersine unlink i nasıl atıcam asıl sorun o
  • 25-08-2010, 16:41:23
    #5
       <?
    if($_POST){
        $sonuc = 1;
        foreach((array)$_POST['checkbox'] as $del_id):
            $sql = 'DELETE FROM konu WHERE id='.intval($del_id);
            $result = mysql_query($sql);
            $sqql = 'DELETE FROM resimler WHERE idsi='.intval($del_id);
            $result2 = mysql_query($sqql);
            $resim = $result2['resim'];
            $basari = unlink($resim);
            if($result && $result2 && $basari) {
                echo ("<script language='javascript'>alert('Başarıyla silindi.');window.location = 'listele.php');</script>");
            } else {
                echo ("<script language='javascript'>alert('Problem oluştu.');</script>");
                $sonuc = 0;
            }
        endforeach;
        if($sonuc){
            echo "<meta http-equiv=\"refresh\" content=\"0\">";
        }  
    }
    ?>
    Koyu yazılmış kısmı kendi veritabanına göre değiştireceksin;
    $resim = $result2['resim'];