Php-Mysql veritabanı güncelleme işlemi
25241 16

Veritabanında güncelleme işlemi yapmak için kullanılan ifade "UPDATE" tir. Bu sql ifadesinin yazım şekline bakalım daha sonra örneğimiz üzerinde kullanarak açıklayalım.

UPDATE tablo_adi SET
alan1='deger1',
alan2='deger2',
.
.
.
WHERE sart_ifadesi

En basit haliyle yukarıdaki gibi kullanılabilir. Örnek tablo üzerinden devam edelim.

id ad_soyad okul_no yas cinsiyet
1 Zeynep Çimen 125 15 Bayan
2 Emrah Yalaz 127 16 Erkek
3 Ahmet Topuz 128 15 Erkek
4 Elif Duman 130 16 Bayan
5 Hasan Durmaz 132 17 Erkek
UPDATE ogrenciler SET
ad_soyad='Hasan Ali Durmaz'
WHERE id='5'

En sonda bulunan kaydın ad_soyad alanını güncellemiş olduk.

id ad_soyad okul_no yas cinsiyet
1 Zeynep Çimen 125 15 Bayan
2 Emrah Yalaz 127 16 Erkek
3 Ahmet Topuz 128 15 Erkek
4 Elif Duman 130 16 Bayan
5 Hasan Ali Durmaz 132 17 Erkek

Üzerine ekleyerek devam ettiğimiz örneğimize dönecek olursak, bu vieoda 2 adet dosya ekledik. Birincisi "duzenle.php", diğeri "guncelle.php" şeklinde olacaktır. "duzenle.php" dosyasında bir listeleme işlemi yapıyoruz ve her kaydın yanına "Güncelle" butonu ekliyoruz. Bu silme işleminde yaptığımız işlemle aynı şey. "Güncelle" butonlarına tıklandığında gizli alanda saklanan "id" bilgisi yine "duzenle.php" dosyasına gönderiliyor ve gelen "id" bilgisine sahip kaydın bilgileri text kutularına yerleştiriliyor. Değişiklikler yapılıp güncelle dendiğinde biligiler "guncelle.php" dosyasına gönderiliyor ve kayıt güncelleniyor.

Öncelikle "duzenle.php" dosyasına bakalım;

<?php
if ($_POST){//Post ile değer gelmişse yani listeleme alanında kaydın yanındaki "Güncelle" ye tıklandıysa
    $id=$_POST["id"];//Hidden elementinden gelen id bilgisi
	$sorgu=mysql_query("select * from deneme where id='$id'");
	$kayit=mysql_fetch_array($sorgu);
	echo'
	<form name="form1" method="post" action="index.php?sayfa=guncelle">
		Adı:<input type="text" name="ad" value="'.$kayit["ad"].'"/><br/>
		Soyadı:<input type="text" name="soyad" value="'.$kayit["soyad"].'"/><br/>
		E-Posta:<input type="text" name="e_posta" value="'.$kayit["e_posta"].'"/><br/>
		<input type="hidden" name="id" value="'.$kayit["id"].'"/>
		<input type="submit" name="gonder" value="Gücelle"/>
		</form>';//Kayıt bilgileri text kutularına  yerleştiriliyor.
}else{//Başlangıçta Kayıtlar Listeleniyor
	$sorgu=mysql_query("select * from deneme");
	echo '<table>';
	echo '<tr>
	<td>Ad</td><td>Soyad</td><td>E-Posta</td><td>Silinsin mi?</td>
	</tr>';
	while($kayit=mysql_fetch_array($sorgu)){
		echo '<form action="index.php?sayfa=duzenle" method="post" name="form1">';
		echo '<tr>';
		echo '<td>'.$kayit["ad"].'</td>';
		echo '<td>'.$kayit["soyad"].'</td>';
		echo '<td>'.$kayit["e_posta"].'</td>';
		echo '<td><input type="submit" name="gonder" value="Güncelle"/></td>';
		echo '<input type="hidden" name="id" value="'.$kayit["id"].'"/>';
		echo '</tr>';
		echo '</form>';
	}
	echo '</table>';
}
?>

Burada da "guncelle.php" kodlarını görebilirsiniz.

<?php
if ($_POST){
    $id=$_POST["id"];
	$ad=$_POST["ad"];
	$soyad=$_POST["soyad"];
	$e_posta=$_POST["e_posta"];
	$sorgu=mysql_query("update deneme set ad='$ad',soyad='$soyad',e_posta='$e_posta' where id='$id'");
	if ($sorgu){
		echo 'Başarılı bir şekilde.';
	}else{
		echo 'Güncelleme işlemi başarısız';
	}
}else{
	echo 'Yanlış yerlerde geziniyosun';
}
?>

 

Yorumlar
fevzi 4 yıl önce dedi ki;
1
Merhaba hocam, öncelikle emeğiniz için teşekkür ederim. güncelleme kısmına kadar diğer derslerinizi sırasıyla yaptım ve sorun yok. şablon oluşturuldu. listeleme ekleme ve silme işlemleri tamam, ama güncelleme olmuyor bir türlü. sizin kodaların aynısını yaptım tüm çalışmalarda satır satır boşluk boşluk kontrol ettim ama güncelleme olmuyor. güncelle dediğimde gelen form boş geliyor hocam. sorun neden kaynaklanıyor olabilir acaba. Cevapla
admin 4 yıl önce cevap verdi;
1
Merhaba @fevzi, form boş geldiğine göre sorguda bir hata yapıyor olabilirsin. Bu durumda mysql_error() fonksiyonunu kullan bence ve echo ile tarayıcıya bastır. Tarayıcıda hatayı göreceksin ve buna göre çözüm bulabilirsin. Eğer hata da yoksa büyük ihtimalle gelen id değerine sahib kayıt yok, yani yanlış id bilgisi geliyordur. Benim tahminlerim bunlar.
fevzi 4 yıl önce cevap verdi;
1
Hocam mysql_error için hata gerek hata vermiyor. sadece form boş geliyor. o boş gelen forma gönder ddediğimde adres çubuğunda index.php?sayfa=guncelle varken orta kısımda burası anasayfa yazımız geliyor. sabah 9 dan beri uğraşıyorum ama çözemedim :S
admin 4 yıl önce cevap verdi;
1
Bu şekilde çözüm bulamayacağım sanırım. Ben sana uygulamanın son halini vereyim sen karşılaştırma yap. Şu linkten indirebilirsin: http://yadi.sk/d/4DXwpPXd8zQJP
fevzi 4 yıl önce dedi ki;
1
Hocam Teşekkür ederim. Formda Value yazdıktan sonra = (eşittir) ifadesini koymayı unutmuşum :S çok saolun. çalışmaların devamnını da sabırsızlıkla bekliyorum. anlatımınız gerçekten açıklayıcı. eğitim seti satın almıştım ama şimdi keşke almasaymışım diyorum :) Cevapla
blues57 3 yıl önce dedi ki;
güncellemede sorun yaşıyorum tüm kullanıcıları güncelliyor şuan da sadece 32. ıd ye sahip kullanıcıyı düzeltiyor yardım ederseniz sevinirim final projem. şimdiden teşekkür ederim https://yadi.sk/d/Aufx-Y6-e4EiH Cevapla
admin 3 yıl önce cevap verdi;
Güncelleme sorgusunun sonunda hata var! (WHERE '$id'=id) şeklinde yazmışsın. Doğrusu (WHERE id='$id') şeklinde olmalı.
memare1 3 yıl önce dedi ki;
hocam merhaba öncelikle bu yazı için elinize sağlık diyorum benim sorduğum bu güncelleme işlemini session oturum kodu ile yapabilir miyiz? kullanıcı profilini düzenler gibi veya bir forum sitesinde bir konuya sadece sizin yazdığınız yorum gibi oda bir şekilde güncelleme gibi ve oturum kontrollu oluyor. istediğiniz zaman yorumu siliyor yada güncelliyorsunuz. bunu bu şekilde yapabilirmiyiz acaba? Cevapla
halilpolat 2 yıl önce dedi ki;
Merhaba hocam, bütün dosyaları oluşturdum lakin güncelleme yapınca bütün verileri aynı veriyle güncelliyor kodlara bakıp yardımcı olabilir misiniz? https://yadi.sk/d/NMuai0DlfSmkw Cevapla
admin 2 yıl önce cevap verdi;
guncelle.php dosyasında (where id='%$id%') kodunu (where id='$id') şeklinde değiştirirsen sorun düzelir diye düşünüyorum.
RELOAD 1 yıl önce dedi ki;
Merhaba hocam, örneklere dayanarak bir şeyler yapmaya çalıştım ama başarısız oldum. Kayıt ekleme ve silme yapabiliyorum fakat değiştirme yapamadım dosyayı upload ediyorum eğer zaman ve imkanınız varsa inceleyip nerede hata yaptığım konusunda yardımcı olabilirmisiniz ? http://dosya.co/xtlla2fzci8f/iade.rar.html Cevapla
admin 1 yıl önce cevap verdi;
1
Veri tabanı dosyasını göndermediğin için çalıştıramıyorum fakat gördüğüm kadarıyla sorguda bir virgül koymamışsın. (,ucret='$ucret'notlar='$notlar') notlar'dan önce virgül olmalıydı.Bu tür durumları görebilmek için "Başarısız" uyarısından sonra mysql hatalarını tarayıcıya bastır. (echo "Başarısız".mysql_error();)
RELOAD 1 yıl önce cevap verdi;
1
Pardon hocam bağlantı ve SQL hepsi içinde yeniden gönderiyorum. Kayıt güncellemede ID gelmiyor galiba anlamadım. http://dosya.co/05zcezxhairz/iade.rar.html
lewis 1 yıl önce dedi ki;
yorum butonu çalışmıyor.. Cevapla
lewis 1 yıl önce dedi ki;
şimdi çalıştı, sanırım yorum uzun olunca çalışmıyor... Cevapla
mehmetazeyurt 7 ay önce dedi ki;
Hocam merhaba. Sizi yeni keşfettim konu tarihine göre geç kalmışım ama cevaplarsanız sevinirim. Site yapıyprum ve güncelleme çalışmıyor 5 saatir uğraşıyorum yapamadım hala lütfen yardımcı olun. https://yadi.sk/d/afEl83Qa32gfzM Cevapla
^
X