Şu yarım bıraktığımız işe devam edelim. İlk yazıda, PHP’de Checkbox’lar ile basit bir ekrana yazma uygulaması yapmıştık. Şimdi ise, bir MySQL tablosundaki kayıtları Checkbox’lar kullanarak toplu halde silme işlemini göstermeye çalışacağım.

Öncelikle hazırlayacağımız iki sayfa için de MySQL bağlantısı gerekeceği için, bağlantıları kuran ayrı bir dosya hazırlayacağız ve o dosyayı sayfalarımıza çağıracağız. Aşağıdaki kodları kendimize göre düzenliyoruz, ve baglan.php isminde kaydediyoruz.

Şimdi, yukarıda belirttiğimiz veritabanının içinde “checkbox” isminde bir tablo olduğunu varsayalım. Tablonun içerisinde 3 sütun var, ve görünüşü de şu şekilde:

Şimdi bu tablodaki kayıtları sıralayan, her kaydın yanına birer checkbox koyan bir arayüz hazırlamamız gerekiyor. Ve bir de seçtiğimiz checkbox’lar ile işlem yapmamız için bir butona ihtiyacımız var. Aşağıdaki kodları arayuz.php ismiyle kaydedelim.

Bu hazırladığımız sayfa ne yapıyor önce ona bakalım. İlk başta include komutu ile daha önceden hazırlamış olduğumuz baglan.php sayfasını kendi içine çağırıyor. Böylece MySQL veritabanımıza bağlanmış oluyoruz. Daha sonra $sql değişkenine checkbox tablosundaki satırları atıyoruz. ul html tagını kullanarak bir liste yaratıyoruz, bu listenin içine form‘umuzu oluşturuyoruz ki checkbox’larımız çalışsın. Yarattığımız formdan anlayacağımız gibi, formumuz verdiğimiz verileri post metodunu kullanarak islem.php isimli bir dosyaya aktarıyor. Yani yaratacağımız son dosya islem.php olacak. Form yaratıldıktan sonra, while döngüsünü kullanarak, tablodaki her satır için bir adet liste elemanı(li) yaratıyoruz, liste elemanının içerisine, tablodan getirdiğimiz satır’ın id‘sini value ve name‘inde barındıran bir checkbox, ve checkbox’un yanına neyi işaretlediğimizi anlamamızı sağlayacak, isim ve soyisim verilerini getiriyoruz. While döngümüz sonlandıktan sonra, işaretlediğimiz checkbox’lardaki verileri islem.php dosyasına aktarmak için, bir adet buton yaratıyoruz. Ve son olarak yarattığımız form ve ul taglarını kapatıyoruz. Bu sayfamızın görüntüsü şu şekilde olacaktır:
Şimdi gelelim islem.php sayfamıza. Bu sayfaya gelecek olan verilere bir bakalım. Buton‘a bastığımız zaman, ilk olarak buton‘un name değerini sayfaya göndermiş oluruz. Bunu işaretlediğimiz checkbox‘ların name ve value değerleri takip eder. Yani islem.php sayfamıza “eğer buton’a tıklanmışsa” şeklinde bir koşul ile başlamamız doğru olacaktır. Daha sonra, işaretlenmiş checkbox’ların name değerlerinin oluşturduğu dizinin her işlemi için, MySQL’dan silme işlemi yapacağız ve bunu foreach ile sağlayacağız. Haydi bir de islem.php sayfamızın içine yazmamız gereken kodlarımıza bakalım.

Son bir toparlamak gerekirse, islem.php sayfamızın ne yaptığı konusunda, ilk satırda gerekli veritabanı bağlantısını sağlamak amacıyla baglan.php sayfasını include ediyor. Daha sonra sayfaya eğer butona basılarak gelinmişse, ve eğer checkbox’lar işaretlenmişse, işaretlenen her checkbox için, MySQL tablosundan bir kayıt siliyor. Eğer işaretlenmiş checkbox yoksa, ekrana birşey seçmediniz yazıyor. Daha sonra da header fonksiyonu aracılığıyla arayuz.php sayfasına geri dönüyor.
Anlamadığınız bir kısım olursa, geriye dönüp PHP’de Checkbox’lar ile İşlem Yapmak isimli yazıyı tekrar okuyun. Olur da yine bir problem olursa, her zaman yorum olarak geri dönebilirsiniz.

7 yorum

  1. tablolar içine aldığımızda sil butonu çalışmıyor sebeb nedir ?

    YanıtlaSil
    Yanıtlar
    1. O tablonun da bir form elemanı içerisinde olduğundan emin miyiz?

      Sil
  2. Çok işime yaradı, teşekkür ederim.(arayuz.php de li kapatma yanlış yazılmış ondan gelmiyor olabilir.)

    YanıtlaSil
  3. çok teşşekkür, işime yaradı, li kapatma yanlış o kadar.

    YanıtlaSil
    Yanıtlar
    1. Ben de düzeltme için teşekkür ederim :)

      Sil
  4. ara sıra kayıtları silmiyor nedendir acaba

    YanıtlaSil
  5. peki bunu silme değil de göster şeklinde yapabilir miyiz? yani kullanıcı 2 ve ya daha fazlasını seçsin. ve veritabanında seçtiklerinin içeriği ekrana gelsin

    YanıtlaSil