Kimse cevap vermediğine göre yine kendi sorunumun çözümünü kendim araştırıp buldum. Her zaman olduğu gibi
Ö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;
Json ile yaptım ve php yardımıyla düzenleme silme ekleme gibi herşeyi dinamik yaptım.
Veritabınana bağlanmak çok saçma her sayfa açılığında veritabanına sorgu gidecek.Sesion olarak tutmak olabilir fakat bu verileri hem kullanıcıda hemde kedimizde sakladığımızı düşünürsek yine saçma oluyor.
Çözüm:
En mantıklısı ve doğrusu verileri sıkıştırılmış json olarak tutmak. Php tarafından okunup düzenlenebilir oluyor böylece. Sayfa açılışındaki hıza etkisi 1 salise falan oldu diyebilirim.
Json encode ve decode ile php tarafından okunup düzenlenebilir.
Dil dosyasını json türünde kaydettim böylece php tarafında json decode ile ile okuyup yazdırabiliyorum. Ve bütün değişiklikleri yapabiliyorum. Kendimce json'un daha performanslı olduğuna karar verdim. Yazdığınız yöntemler benim için yararlı değildi. En iyi yöntem için tayfun hocanın cevabını beklerdim. Sağlk olsun.
Bunun için google arama API'si bulunuyor. Github üzerinde ücretsiz paylaşılmış dosyalar mevcut.
Soruları şikayet etme özelliği getirilmeli. Böyle durumlara yol açan insanlar olması hiç hoş değil.
Hem sql hem de php ve json dosyası oluşturmak gereksiz olur sadece json ile veya php dosyası ile güncellenip silinebilir şekilde olur. Benim şüphem hangisinin daha performanslı olacağı.
Merhaba, ufak bir kontrol ile bunu yapabilirsin.
Aşağıya ufak bir örnek bırakıyorum. Mantığını anlayınca devamını getirebileceğinden eminim.
Öncelikle yapacağımız olay php ile şuanki tarihi almak ve kendi belirlediğimiz tarihle karşılaştırmak. Daha sonra sonuca göre html göstereceğiz.
<?php
$son_kayit = '20-02-2021';
if (strtotime($son_kayit) > strtotime(date("d-m-Y"))): ?>
<form>
<input type="text" placeholder="Adınız">
<input type="email" placeholder="Email adresiniz">
<input type="password" placeholder="Şifreniz">
<button>Kayıt Ol</button>
</form>
<?php else: ?>
<p>Kayıtlar durmuştur.</p>
<?php endif; ?>
Son_kayit içerisindeki tarihimiz şuanki tarihi geçtiyse ekrana "Kayıtlar durmuştur." yazısı gelecektir, geçmediyse formumuz gözükecek ve kayıt olabilecekler.
Umarım faydalı olur. Kolay gelsin.
Burada mantık hatası var gibi gözüküyor.
JQuery'de $.ajax fonksiyonu arkaplanda çalışır.
$.ajax({
url:'/SatinAl/',
type: 'post',
data: Udata,
success: function(data) {
// Udata değişkeni 'SatinAl' linkine gönderilir ve geriye dönen sonucu data değişkenine atar
}
});
Udata değişkeni 'SatinAl' linkine gönderilir ve geriye dönen sonucu data değişkenine atar. Süslü parantez içine en son yapılacak işlemleri girmelisiniz.
Çözüm:
Tüm bunlar yerine gizli bir form oluşturun. Form ile post edin. İnput içine json türünde verilerinizi koyun ve diğer taraftan php ile 'json_decode' ile alınız.
<form action="SatinAl" method="post">
<input style="visibility:hidden" name="data" type="text" value="<?php echo '{
'.$userd.'
'.Fiyatlandirma("parabirimi",$_SESSION["parabirimi"],$oku["fiyat"]).'
'.ipadres().'
'.$oku['id'].'
'.$oku['adi'].'
'.$uye['adsoyad'].'
'.$uye['tel'].'
'.$uye['gsm'].'
'.$uye['email'].'
'.$uye['adres'].'
}' ?>">
<button class="btn btn-success mb-1 mt-1">Satın Al</button>
</form>
Verileri almak için;
<?php
$data = json_decode($_POST['data']);
//print veya echo ile kullanabilirsin
print_r($data); //verilerin tamamını ekrana yazdırır
echo $data[0]; //ilk veriyi ekrana yazdırır
?>
Umarım yardımcı olur. Kolay gelsin.