v2.5.2
Giriş yap

x tablosundan eşleşen tüm kayıtları sil.

aydinkeskin
569 defa görüntülendi

blog listesinden içerik resimleri sil diyorum blog id sini gönderiyorum.
icerik_resimleri tablosundan o id ile eşleşen tüm kayıtları sil ve bana json olarak döndür demeye çalışıyorum da yapamadım

<?php
			$response = array();
			$pid = intval($_POST['IcerikResimSil']); ;
			$c = pre("SELECT * FROM icerik_resimleri WHERE blogID=?");
			$c->execute([$pid]);
			$sirala = $c->fetchAll(2); 
				while($resim = $c->fetchAll(2)){
					if(file_exists(__UPLOAD__.'/blog/'.$resim["resim"])){
						unlink(__UPLOAD__.'/blog/'.$resim["resim"]);
					} 
					$query = "DELETE FROM icerik_resimleri WHERE blogID=:mesajsil";
					$stmt = $db->prepare( $query );
					$stmt->execute([":mesajsil" => $resim["id"]]);
				} 
					if($stmt) {
						$response['status']  = 'success';
						$response['message'] = 'İçerik Resimleri Başarı İle Silindi.';
					} else {
						$response['status']  = 'error';
						$response['message'] = 'İçerik Resimleri Silinirken Bir Hata Oluştu...';
					}
			 
?>

haliyle stmt hatası veriyor burda ama silme işlemini yine yapmıyor

bir kaç şekildede denedim where blogid in (:mesajsil) içerde dışarda
olmadı bit türlü.

yardımlarınızı bekliyorum :)

Cevap yaz
Cevaplar (9)
aydinkeskin
1238 gün önce

kendi soruma kendim cevap vereyim :)

		$response = array();
		$pid = intval($_POST['IcerikResimSil']); ;
		$c = pre("SELECT * FROM icerik_resimleri WHERE blogID=?");
		$c->execute([$pid]); 
		$resimler = $c->fetchall(2);

		$query = "DELETE  w
					FROM icerik_resimleri  w
					INNER JOIN blog e
						ON w.blogID=e.id
					WHERE blogID=?";
		
		foreach($resimler as $resim){
			if(file_exists(__UPLOAD__.'/blog/'.$resim["resim"])){
				unlink(__UPLOAD__.'/blog/'.$resim["resim"]);
			} 
		}  
			$stmt = $db->prepare( $query );
			$stmt->execute([$pid]);
			if($stmt) {
				$response['status']  = 'success';
				$response['message'] = 'İçerik Resimleri Başarı İle Silindi.';
			} else {
				$response['status']  = 'error';
				$response['message'] = 'İçerik Resimleri Silinirken Bir Hata Oluştu...';
			}
			
			

inner joinle işimi halletim arkadaşlar lazım çıkar aramalarda faydalanır belki

iyi günler herkese.

aydinkeskin
1237 gün önce

@database PDO::FETCH_ASSOC İÇİN fetchAll(2) yazsan da aynı şeyi yapıyor bu daha da kolay oluyor :)

sidik yarışına çevirdik iyice :)))))

@tayfunerbilen

keşke kişisel mesajlaşma alanımız olsa ne güzel olurdu.

database
1237 gün önce

Aynen direkt şey yapabiliyorum _prepare("sql", [])->fetchAll(PDO::FETCH_ASSOC); gibi kullanabiliyorum veri çekerken falanda kolay oluyo baya

aydinkeskin
1237 gün önce

@database

eskiden masaüstünde kolay yazıyordum ne zaman nalet klavyem bozul sorunlar o zaman başladı
ben kod yazmaktan zevk alan biriyim sıkılmıyorum genelde ondan sonra böyle bir yönteme başvurdum:)

seninde fena değilmiş .

database
1237 gün önce

Kankam bende prepare için fonksiyon yazmıştım mantık daha basitti ama

prepare("sql", []);

olarak gidiyordu benimkisi bir daha boşu boşuna execute attırtmıyordum altında tek satırda hallediyordum ama sen bilirsin ha isteyen olursa diye 5 dk yazaym

class _db{

    public $db;

    public function __construct(...){...}
    
    
    public static function prepare($sql, $data){
        $e = $this->db->prepare($sql);
        return $e->execute($data);
    }
    

}


$query = _db::prepare("SELECT * FROM users WHERE id = ?", [1]);

aydinkeskin
1237 gün önce

function pre($par){

global $db; 
return $db->prepare($par);

}
function q($par){

global $db; 
return $db->query($par);

}

lazım olan arkadaşlar kullanabilir
prepare için pre()
query için query

paylaşmak güzeldir :)

qplot
1238 gün önce

bende dıyorum nasıl calısıyor :) tmm

aydinkeskin
1238 gün önce

fonksiyon yazdım onun için $db->prepare yazmak bazı klavyelerde zor oluyor :) işimi kolaylaştırıyor

qplot
1238 gün önce

bir şey gözume carptı

$c = pre("SELECT * FROM icerik_resimleri WHERE blogID=?");

buradaki " pre " varken nasıl calısıyor prepare olması lazımken ?