Php: Çoklu kayıt yönetimi

Yazan: karflake | Tarih 2 Aralık 2008 | Yorum  Yorum Yok
BerbatKötüOrtaGüzelHarika Henüz puan verilmemiş
Loading ... Loading ...

Burada Javascript ile çoklu seçimlerin nasıl yapılacağını anlatmıştım. Şimdi de tarafında çoklu seçimlerin nasıl yönetileceğinden bahsedeceğim.

Form'da checkbox'ları yazdırırken, her checkbox'a ayrı bir isimi vermemiştik. Checkbox'ların name ve id değerlerini, hepsinde aynı şekilde,  checkbox[]olarak belirlemiştik. Bu sayede formumuz submit edildiğinde, checkbox'lar bir dizi şeklinde gönderilecektir. Bunu biraz daha açıklayalım. Aşağıdaki ekran görüntüsündeki gibi seçim yaptığımızı varsayılım.

coklukayit
Yukarıda da görüldüğü gibi veritabanındaki ilk ve son değer seçilmiş. Bu form submit edildiğinde, indisi 0'dan başlamak üzere iki elemanlı bir dizi oluşturulur. Bu dizinin ikinci boyutunda, checkboxlar'ın value değeri, yani veritabanındaki id değeri yer alır. 'de formdan post metoduyla gönderilen değişkenler $_POST dizisinde tutulduğundan, bu diziyi ekrana bastırarak da bu durumu görmek mümkündür. Yukarıdaki seçim yapılırsa ve $_POST dizisi yazdırılırsa aşağıdaki sonuca ulaşılır.

:
  1. (
  2.     [0] => 1
  3.     [1] => 6
  4. )

Bu diziyi 'de işlemek için en uygun yöntem, foreach döngüsünü kullanmaktır. Yukarıdaki dizi için foreach iki kere döner ve döngünün her adamında, belirtilen döngü değişkenine sağdaki dizi değerini atar. Daha sonra yapılacak işlem, döngünün içinde silme işlemini yapmaktır. Kısacası, çoklu seçim yapılmış bir formdan gelen değerlere göre silme yapmak için aşağıdaki kod kullanılır. (Not: Kod renklendiricisindeki hata yüzünden aşağıdaki fonksiyonun birinci satırındaki empty ifadesi iki kere yazılmıştır. Plain text'e tıklayarak fonksiyonun hatasız halini görebilirsiniz.)

:
  1. if (empty($_POST['checkbox']))
  2.       die ("Seçili kayıt yok.");
  3.     foreach ($_POST['checkbox'] as $deger)
  4.     {
  5.       $sql="DELETE FROM $tabloadi WHERE id='$deger'";
  6.       $result=mysql_query($sql);
  7.       if ($result===false)
  8.         echo "$deger idli kayıt silinemedi
  9. .";
  10.     }
  11.     echo "Kayıtlar başarı ile silindi.<a href="$sayfaadi">Kayıt listesi</a> ";

Silinecek her kayıt için bir sorgu yapmak aslında çok doğru bir yöntem değil. Ancak kullanılabilecek diğer yöntemler başka bir yazının konusu. Bu konuyla ilgili örneği buradan indirebilirsiniz.

Çok sevdim, başkalarıyla paylaşayım:
  • Google Bookmarks
  • Facebook
  • MySpace
  • TwitThis
  • del.icio.us
  • Digg
  • Live
  • YahooMyWeb
  • Technorati
  • StumbleUpon
Yazdır Yazdır | 771 Görüntülenme | Kategori: PHP | Trackback  Geri İzleme
Etiketler  Etiketler: , , ,

Benzer Yazılar


Yorum Yap


(gerekli)

(gerekli,yayınlanmaz)




XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>