v2.5.2
Giriş yap

herşeyi siliyor

hasaneryilmaz
648 defa görüntülendi

class Name {


    public function delete($par=0)
    {
        $Namelistele=$this->prepare("SELECT * FROM name WHERE ustsayfa= ? ");
        $Namelistele->execute(array($par));
        foreach($Namelistele as $Namei)
        {
            $Namesil=$this->prepare("DELETE FROM name WHERE psira = ? ");
            $Namesil->execute(array($Namei["psira"]));
            $this->delete($Namei["psira"]);
        }
        $Namesill=$this->prepare("DELETE FROM name WHERE psira= ? ");
        $Namesill->execute(array($par));
        return true;
    }


}


bu fonksiyonu içine değer verip çalıştırdığımda tablodaki tüm kayıtları siliyor.
nedeni ne olabilir sizce?

venloress
1382 gün önce

Öncelikle yapmak istediğini anlamadım. Sadece silmek gibi duruyor.
Yazdığın kodlar mantığa meydan okuyor resmen. Benim yazdığımı kullan hem daha az yer kaplar hemde daha basit bir kullanımı var.

class Name {
    public function delete(string $tableName, string $where,string $value): bool
    {
        $delete=$this->prepare("DELETE FROM $tableName WHERE $where ='$value'");
        $delete->execute();
        return $delete->rowCount();
    }
}

Kullanım:

require 'Dosya_Adı';

$name = new Name();
$name->delete('name','psira','1'); 

Yukarıdaki kullanım sadece siler. Bunun silinip silinmediğini kontrol edebilirsin.

Kontrollü:

require 'Dosya_Adı';

$name = new Name();
if ($name->delete('name','psira','1')): //Eğer silinirse devam et 
    $name->delete('name','psira','2'); //ve devamında bunu da sil
    echo 'silindiler';
endif;