Varolan bir kayıt listesinden belli kayıtları seçerek işlem yaptırmak için kullandığım kodları paylaşıyorum.
Mesela aşağıdaki gibi bir tablomuz olsun;
CREATE
TABLE
`kisiler` (
`id`
int
(11)
NOT
NULL
auto_increment,
`adisoyadi`
varchar
(50)
NOT
NULL
,
PRIMARY
KEY
(`id`)
)
Bu tablodaki kayıtları bir formda listeleyelim,
form.php
<form action=”sil.php” method=”post”>
<?php $sql=mysql_query(“select * from kisiler”);
while($sonuc=mysql_fetch_array($sql)){
?>
<input type=”checkbox” name=”coklu[]” id=”checkbox” value=”<? echo $sonuc[‘id’] ?>”/>
<?php echo $sonuc[‘adisoyadi’]; ?>
<br/>
<? } ?>
<input type=”submit” name=”button” id=”button” value=”Sil” />
</form>
Kişilerin Ad Soyad’larını başlarında checkbox olacak şekilde listeledik. Kullanıcı istediklerini seçip Sil Butonuna basınca sil.php sayfasında seçili olan tüm kayıtlar bir dizi şeklinde gelecektir. Biz bu diziyi kullanıp kayıtları ya teker teker yada toplu olark tek bir seferde sildirebiliriz.
TekTek silmek için sil.php
$secilenler=$_POST[‘coklu’];
foreach($secilenler as $sil){
$sonuc=mysql_query(“DELETE FROM kisiler WHERE id='”.$sil.”‘”);
}
Toplu tek seferde sildirmek için sil.php
if
(
$_POST
) {
$secilenler
= join(
", "
,
$_POST
[
'coklu'
]);
/* veya$secilenler = implode($_POST['coklu'],', ');
*/
$sonuc
= mysql_query(
"DELETE FROM kisiler WHERE id IN ($secilenler)"
);
echo
(
$sonuc
) ?
"Başarılı"
:
die
(mysql_error());
}
Her iki kodlada silme işlemi yapılabilir. Birincide her id için sonuç alınabilmekte diğerinde ise silinecek kayıtlar ard arda aralarına ‘,’ konularak tek bir sql komutuyla silinmekte.