Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
357
Tıklama
0
Öne Çıkarma
PHP Pdo Yardım Lazım
M
7 yıl (2 mesaj)
Er
Konu Sahibi



if ( $_GET[ 'urunsil' ] == "ok" )
{
$urun_id=$_GET['urun_id'];

$sil = $db->prepare( "DELETE from urunler where urun_id=:urun_id" );
$kontrol = $sil->execute(
array(
'urun_id' => $_GET[ 'urun_id' ]

)
);

if ( $kontrol )
{
$resimsilunlink=$_GET['urun_resim'];
unlink("..$resimsilunlink");


Header( "Location:../urunler.php?status=ok" );
}
else
{

Header( "Location:../urunler.php?status=no" );
}

}

BU DA DİĞER KODUN BAŞLANGICI


if ( $_GET[ 'urunresimdetaysil' ] == "ok" )
{

$sil = $db->prepare( "DELETE from resim where resim_id=:resim_id" );
$kontrol = $sil->execute(
array(
'resim_id' => $_GET[ 'resim_id' ]
)
);

if ( $kontrol )
{
$resimsilunlink = $_GET[ 'resim_link' ];
unlink( "..$resimsilunlink" );

Header( "Location:../urunler.php?status=ok" );
}
else
{

Header( "Location:../urunler.php?status=no" );
}
}



urunsil dediğim zaman ürünün hem kendini hemde ürüne ait diğer resimleri silmesini istiyorum ama ne yaptıysam yapamadım birazda yeni olduğum için açıkcası kafam karıştı orjinalleri yukarıda iki kodu birleştirip tek kod haline getirmek istiyorum ama yapamıyorum yardımlarınız için şimdiden teşekkürler




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 )

{

$resimsilunlink = $_GET[ 'urun_resim' ];

unlink( "../$resimsilunlink" );


$resimsor=$db->prepare("SELECT * from resim where urun_id=:urun_id");

$resimsor->execute(array(

'urun_id' => $_GET['urun_id']

));

while($resimcek=$resimsor->fetch(PDO::FETCH_ASSOC)) {



$resimsilunlink=$resimcek['resim_link'];



unlink("../$resimsilunlink");



}

$resimsil=$db->prepare("DELETE from resim where urun_id=:urun_id");

$resimkontrol=$resimsil->execute(array(

'urun_id' => $_GET['urun_id']

));


Header( "Location:../urunler.php?status=ok" );

}

else

{



Header( "Location:../urunler.php?status=no" );

}

}


DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi merdaniler -- 26 Eylül 2019; 2:4:44 >

A
7 yıl (1174 mesaj)
Binbaşı

Bunu en sağlıklı yolu ilişkisel database oluşturmak (tabloların innodb tipinde olacak ve tablolar arası foreing key kullanacaksın) bu şekilde ilişkili bir veriyi sildiğinde otomatik olarak ona bağlı verilerde mysql tarafından silinecek ister phpmyadmin kullan ister sitede yazdığın kod ile direk delete yap her işlemde bağlı tablolardaki bağlı verilerde silinecek.



B
7 yıl (1013 mesaj)
Yüzbaşı

Foreign Key kullanımı bir çözüm burada evet.
İlişikili ürünleri silmek için öncelikle alt kırılımlar silinmelidir. Yani önce ürün resim detayını sonra ürün resmini silmeniz gerekir.

İkinci çözüm transaction kullanımıdır.
İlişkisel veri tabanı mimarisiyle beraber kullanılabilir. Kullanılmalıdır da. Foreign Key tanımlaması yaptıktan sonra da transaction önemlidir. Yani biri birinin alternatifi değildir bunlar.

Transaction içerisinde herhangi bir sorun oluşursa rollback yaparak veri kaybının önüne geçersiniz.
Yine de önce ürün alt detay resimleri sonrasında ürün resmi silinmelidir.

Detay resimlerini sildiniz, peşine ürün resmi silerken hata oluşursa rollback yaptığınızda transaction içinde yapılan insert, delete, update işlemlerinde veri kaynına ya da veri bozulmalarını önlemiş olursunuz.


Gelelim sizin kodunuza;
Parametre adı olarak status göndermişsiniz fakat get ederken urunsil ve urunresimdetaysil yakalamaya çalışmışsınız.



M
6 yıl (2 mesaj)
Er
Konu Sahibi

STRESTE GİRDİM NE ZAMANDIR YAPAMADIM SİSTEMİ TAMAMEN SİLESİM GELİYOR BU KODU BANA DÜZENLEYİP YAZABİLECEK Bİ ARKADAŞ VARMIDIR BİRAZ YENİYİM BU KONULARDA :(


Bu mesaja 1 cevap geldi.
B
6 yıl (1013 mesaj)
Yüzbaşı

Ücret mukabilinde yazabilirim. Dilersen pm den iletişime geçebilirsin.



< Bu ileti DH mobil uygulamasından atıldı >


Bu mesajda bahsedilenler: @merdaniler
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.