Php: Çoklu kayıt yönetimi
Burada Javascript ile çoklu seçimlerin nasıl yapılacağını anlatmıştım. Şimdi de Php 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.

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. Php'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.
Bu diziyi Php'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.)
-
foreach ($_POST['checkbox'] as $deger)
-
{
-
$sql="DELETE FROM $tabloadi WHERE id='$deger'";
-
if ($result===false)
-
echo "$deger idli kayıt silinemedi
-
.";
-
}
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.
Benzer Yazılar
Yorum Yap
XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

2 Aralık 2008 |










Etiketler:



Henüz yorum yapılmamış.