Toplu Ürün Silerken Resmini Klasörden Sildirmek
Bu şekilde yaptığımda hata aldım nasıl yapabilirim fikri olan varmı
<?php
<input type="checkbox" name="sil[]" value="<?php echo $uruncek['urun_id']; ?>&urunresimsil=<?php echo $urunresimcek['urun_resimyol']; ?>" />
if($_POST){
$sil = implode(",",$_POST["sil"]);
$delete = $db->query("DELETE FROM urunler WHERE urun_id in($sil) ");
if($delete){
$urunfotosil=$_POST['urunresimsil'];
unlink("../$urunfotosil");
echo '<h4>secilen Ürünler basarıyla silindi</h4>';
header("refresh: 2; url=urun.php");
}else {
echo "<h3>secilen Ürünler silinirken bir hata olustu</h3>";
}
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (10)
<input type="checkbox" name="sil[]" value="<?php echo $uruncek['urun_id']; ?>&urunresimsil=<?php echo $urunresimcek['urun_resimyol']; ?>" />
<?php
if($_POST){
$sil = implode(",",$_POST["sil"]);
$delete = $db->query("DELETE FROM urunler WHERE urun_id in($sil) ");
if($delete){
$urunfotosil=$_POST['urunresimsil'];
unlink("../$urunfotosil");
echo '<h4>secilen Ürünler basarıyla silindi</h4>';
header("refresh: 2; url=urun.php");
}else {
echo "<h3>secilen Ürünler silinirken bir hata olustu</h3>";
}
}
?>
Merhaba php ile bir dosyayı silerken unlink fonksiyonu kullanılır. Ufak bir kullanımını bırakıyorum.
<?php
## Bu senin siliceğin dosyanın linki ##
$file = 'images/products/original/macbook-air-m1.png';
## Silme işlemi ##
$delete = unlink($file);
if ($delete) {
echo 'File deleted.';
} else {
echo 'File <b>not</b> deleted.';
}
?>
ben ilk önce gelen get değerini sutunda varmı diye kontol ettiriyorum eğer varsa ise ftp varmı diye
is_file ile kontrol ediyorum eğer ordada var ise unlink ile siliyorum unlink işlemleri gerçekleşti ise db den de silme işlemi yapıyorum.
sırası ile
geelen değer sql de varmı
sql de var ise dizinde varmı
dizinde var ise sil
silme olduysa sql den kaldır.
Maalesef bu şekilde hata vermekte sorun
<input type="checkbox" name="sil[]" value="<?php echo $uruncek['urun_id']; ?>&urunresimsil=<?php echo $urunresimcek['urun_resimyol']; ?>" />
bu kısımda olabilir mi
tek silme işleminde sorunsuz çalışıyor
<a href="ayar/islem.php?urunsil=ok&urun_id=<?php echo $uruncek['urun_id']; ?>&urunresimsil=<?php echo $urunresimcek['urun_resimyol']; ?>" class="btn btn-danger shadow btn-xs sharp">
<?php
if ($_GET['urunsil']=="ok") {
$sil=$db->prepare("DELETE FROM urunler WHERE urun_id=:urun_id");
$kontrol=$sil->execute(array(
'urun_id' => $_GET['urun_id']
));
if ($kontrol) {
$urunfotosil=$_GET['urunresimsil'];
unlink("../../$urunfotosil");
header("Location:../urun.php?sil=ok");
} else {
header("Location:../urun.php?sil=no");
}
}
?>
implode yerıne foreach kullanacaksın urun sılmeyıde foto sılmeyıde
ayrıca
header("refresh: 2; url=urun.php"); yerıne Location kullan
header("Location: urun.php");
FOTO YOLLARININ DOGRU OLDUGUNA EMIN OL
foreach($_POST['sil'] as $sil){
$delete = $db->query("DELETE FROM urunler WHERE urun_id=$sil");
if($delete){
$urunfotosil=$_POST['urunresimsil'];
unlink("../$urunfotosil");
echo '<h4>secilen Ürünler basarıyla silindi</h4>';
header("refresh: 2; url=urun.php");
}else {
echo "<h3>secilen Ürünler silinirken bir hata olustu</h3>";
}
}