Veritabanındaki Kayıtları Düzenleme
Veri kayıt etme, veri listeleme konularından sonra veritabanında sakladığımız verileri düzenleme konusuna geldik. Aynı tablo yapısı üzerinden anlatmaya devam edeceğiz. MySQL’de düzenleme işlemi UPDATE komutuyla gerçekleşmektedir. Öncesinde düzenleyeceğimiz kayıtı seçerek göstermeli ve sonrasında düzenleme işlemini gerçekleştirmeliyiz.
İlk olarak düzenlemek istediğimiz kaydı seçelim;
// defter isimli tablomuzdan düzenleme amacıyla ID numarası 1 olan kaydı alalım.
<?PHP
$calistir = mysql_query("select * from defter where defter_id='1'") or die("Hata Olustu!");
$oku = mysql_fetch_assoc($calistir);
//düzenlenecek kaydı sayfamızda gösterelim;
?>
<form action="duzenle.php" method="post">
<input name="kayit_id" type="hidden" value="<?PHP echo $oku['defter_id']; ?>" />
<label>İsim :<input type="text" name="isim" id="isim" value="<?PHP echo $oku['defter_isim']; ?>" /></label>
<label>Soyisim :<input type="text" name="soyisim" id="soyisim" value="<?PHP echo $oku['defter_soyisim']; ?>" /></label>
<label><input type="submit" name="button" id="button" value="Düzenle" /></label>
</form>
Formumuzda ilgili alanlara, bilgileri yazarak sayfada göstermiş oluyoruz ve formun içerisine düzenlenecek olan kayda ait ID numarasını hidden field ile yerleştiriyoruz. Sonrasında istediğimiz düzenlemeleri yaptıktan sonra formumuzu duzenle.php’ye gönderiyoruz.
Düzenleme işlemi, duzenle.php sayfasında gerçekleşecektir.
<?PHP
//formdan gelen bilgileri alalım. Ayrıntılı bilgi : http://www.phpdili.com/php/php-ile-form-degiskenlerine-erisim.html
$duzenlenecek_id = $_POST['kayit_id'];
$isim = $_POST['isim'];
$soyisim = $_POST['soyisim'];
//veritabanında düzenleme işlemine geçelim.
$duzenle = mysql_query("update defter set defter_isim='$isim', defter_soyisim='$soyisim' where defter_id='$duzenlenecek_id'") or die("Hata Olustu!");
if($duzenle)
{
echo 'Düzenleme işlemi başarıyla gerçekleşmiştir.';
}
?>
MySQL veritabanında kayıtlı bilgilerin web üzerinden PHP ile düzenleme işlemi genel itibariyle bu şekildedir.
// defter isimli tablomuzdan düzenleme amacıyla ID numarası 1 olan kaydı alalım.
Üstteki bu kod ayrı bir sayfamıdır?Bunun bir adı varmı acaba ??Sitenizdekileri denemeye çalışıyorumda..
Oldukça güzel anltamışsınız..Ama yukarıdaki bölüm kafamı karıştırdı..Genelde düzenle sayfası
tek oluyordu galiba sizde üstte 2 bölüm görünce kafam karıştı…
Bu arada website bölümünü doldurmadan mesaj atamadım..
Daha net anlaşılması açısından 2 ayrı sayfa olarak göstermeye çalıştım fakat bunu yazıda net bir şekilde belirtmeyi unutmuşum. Üstte gördüğünüz kod bloğunda yaptığımız olay, düzenlemek istediğimiz kaydı seçip form içinde ekranda göstermek. Düzenlenecek kaydın bilgilerini gösterdikten sonra, form üstünde değişiklikleri yaparak, formun action parametresinde gördüğümüz gibi duzenle.php sayfasına postalıyoruz yeni bilgileri. Alttaki kod bloğu duzenle.php sayfasına ait, o sayfada da gönderdiğimiz yeni bilgileri alıp güncelleme işlemini gerçekleştiriyoruz.
teşekkürler cok faydalı oldu
Teşekkürler
Adım adım yapmanız iyi olmuş.. Güncelleme olayını form üzerinde anlatan yazı bulmak zor oluyorda ….
İyi oldu sitenizi görmem..Kolay Gelsin..
gerçektende çok faydası oldu…:)
where defter_id=’1′ dedik burda da ben 1 değil 2 yi değiştirmek istiyorum diyelim yada değiştireceğim id yi form ile belirlemek istiyorum o halde o kısımda
$id = $_POST['secilen_id'] ile başka bi formdan girdiğim değeri değişken atayıp
where defter_id=’1′ yerine where defter_id=’$id’ yapsam olmazmı? bence olmaz neen olmaz çünkü yaptım olmadı
Peki nasıl yapılabilir bu? Teşekürler
Eğer burada yazdığınız gibi $id=$_POST['secilen_id'] yazdıysanız çalışmaz. Çünkü kodun sonunda ; yok. $id=$_POST['secilen_id']; şeklinde olması gerek. Sql komutuna geçmeden önce, echo $id; komutuyla id’nin post ile gelip gelmediğini kontrol edin veya sql komutunda die(“Hata Olustu!”) kısmını die(mysql_error()) olarak değiştirerek aldığınız hataya bakarak çözüme ulaşabilirsiniz.
Ayrıca sadece post metodunu değil, get metodunu da kullanabilirsiniz. sil.php?id=2 yapıp, $id=$_GET['id']; yaparak adres satırındaki id’yi elde edebiliriz.
Çok teşekkür ederim çok faydalı olmuş ve çok işime yaradı 10 numarasınız (: