herşeyi siliyor
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?
Ö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;