Kaydet varsa Güncelle..
Merhabalar. Sizin için Basit de olsa benim için zor bir tahakkuk işlemleri yaptırmaya çalışıyorum. Yapmak istediğim şu.
Tek butonla insert ve update işlemi yaptırmak.
Mesela personel tablomda
id--------ad----------soyad--------tc
1--------Ahmet-------Olmaz--------12345678900
olsun. TC yanlış yazılsın ve kullanıcı değiştirmek istiyor.21345678900 yaptığında o kayıt varsa nasıl güncelleme yaptırabiliriz.
Teşekkürler.
Php
tek butonla ayni islemi hem update e edip hem insert edemezsin
update yapabilmen icin oncelikle insert etmis olman gerekir
Php
Peki Yanlışlıkla tekrar kaydete basarsa diye bir önlem alabilir miyiz?
aklımda uniqlerin hepsini array e atıp array de var ise butonu disabled yapmak var ama daha mantıklı bir şey varsa çok makbule geçer...
Peki Yanlışlıkla tekrar kaydete basarsa diye bir önlem alabilir miyiz?
aklımda uniqlerin hepsini array e atıp array de var ise butonu disabled yapmak var ama daha mantıklı bir şey varsa çok makbule geçer...
tabi bunu yapmak mumkun
kaydet meden once veri tabanından kontrol gerceklestirirsen hicbir problem kalmaz
veritabanından formdan gelen tc kimlik nosu ile veri tabanındaki kimlik nosunu karsılastır
eger veri tabanında kayıt bulunursa insert islemini yaptırmaz hata yazısı yazdırırsın eger bulunmaz ise kayıt islemini gerceklestirir onay yazısı yazdırırsın olur biter
Php
dediğinizi yapabilmeniz için sanırım bu fonksiyon işinizi görcektir.
<?php
function TcKontrol($kullanici,$tc){
global $sql_baglantisi;
$kullanici = mysql_real_escape_string(htmlspecialchars(trim($kullanici)));
$tc = mysql_real_escape_string(htmlspecialchars(trim($tc)));
$query = mysql_query('SELECT * FROM tablo_adi WHERE tc=\''.$tc.'\''); // tc numarasina sahip kullanici varmi diye bak.
if (mysql_affected_rows()){ // eğer varsa güncelle
echo 'bu tc no mevcut';
}else{ // yoksa ekle
$guncelle = mysql_query('INSERT INTO wts_oda_uye (kullanici,tc) VALUES (\''.$kullanici.'\',\''.$tc.'\')';
}
}
?>
kullanımı;
<?php
TcKontrol($kullanici,$tc);
?>
php
Merhabalar. Sizin için Basit de olsa benim için zor bir tahakkuk işlemleri yaptırmaya çalışıyorum. Yapmak istediğim şu.
Tek butonla insert ve update işlemi yaptırmak.
Mesela personel tablomda
id--------ad----------soyad--------tc
1--------Ahmet-------Olmaz--------12345678900
olsun. TC yanlış yazılsın ve kullanıcı değiştirmek istiyor.21345678900 yaptığında o kayıt varsa nasıl güncelleme yaptırabiliriz.
Teşekkürler.
Merhaba;
İlk öncelikle kayıt yaptırdın ve üye olan kişi TC sini yanlış kaydetti ve sonradan farkına vardı ki ben bu TC Numaramı nasıl düzeltirim.
Yapacağın adımlar hayal gücüne bağlı ama genel anlamda en basit olarak sırayla gitmen gereken adımlar olmalı.
1. adım eğer düzenleme yapacaksan düzenleme yapacağın kişinin ID'si
2. adım düzenletmek istediğin alanlar İsim - soyisim -tc gibi
3. adım düzenlemek istenen yeni değerler.
Evet biraz biraz ısındıysak bu tarz işi nasıl ve ne gibi kod kullanacağız ona bakalım.
İlk öncelikle sessionla giriş yaptır ve kullanıcının bilgilerini bir değişkene at bizim için önemli olan ID'si Eğer kullanıcı giriş yaptıysa karşına bilgilerini güncelle diye bir buton koyabilirsin. Bu butonun uzantısı güncelleme yapacağın sayfaya gitsin Örn: "guncelle.php"
guncelle.php içerisinde
<?php
session_start();
ob_start();
include'DATABASE_YOLU';
$kullanici_id=$_SESSION["id"];
$goruntule = mysql_query("Select * From tablo_adi WHERE id='$kullanici_id' ");
if(!empty($_POST['gizli']))
$tc=$_POST['tc'];
$ad=$_POST['ad'];
$soad=$_POST['soyad'];
$id=$_POST['gizli'];
$guncelle = mysql_query("UPDATE tablo SET TC = '$tc', AD = '$ad',SOYAD = '$soyad'
{
echo "Kayit Basarili";
}else { echo="Kayit Basarisiz";}
}
?>
<htlm>
<head>
<title>Guncelle </title>
</head>
<body>
<?php while ($getir = mysql_fetch_array($goruntule)) {
?>
<input type="text" name="tc" value="<?php echo $getir['TC'] ?>" />
<input type="text" name="ad" value="<?php echo $getir['AD'] ?>" />
<input type="text" name="soyad" value="<?php echo $getir['SOYAD'] ?>" />
<input type="hidden" name="gizli" value="<?php echo $kullanici_id; ?>";
<input type="sumbit" value="Güncelle" />
</form>
<?php } ?>
</body>
</html>
Bu şekilde daha basit yaparsın kodları direk yazdım deneme fırsatım olmadı...
Php
Bunu nası kullanacağınızı öğrenebilirmiyim ?
yani eğer bir üye giriş paneli varsa ve üye giriş yaptıktan sonra kendisi düzelticekse. kendinizi kasmaya gerek yok. kullanıcıya veri tabanındaki id numarası ile session açtırırsınız ve profilini günceellerkende bütün "UPDATE" sorgularının hepsinin şartını WHERE uyeid="$_SESSION['uyeid']"
gibisinden kullanırsınız sıkıntı kalmaz.
Fakat siz kendiniz değiştiricekseniz ozamanda her kullanıcı için session açamıcağınıza göre unique değere sahip id numarasını link olarak güncelleme sayfasına verirsiniz ve bu değeri "GET" olarak alır bilgilerini öyle güncellersiniz.
Yok ama eğer dersenizki ben bir kayıt girdiğim zaman varsa veritabanında güncellesin ama yok ise sıfırdan kaydetsin diyorsanız
Ozaman size bir sorum olucak. ve ona göre cevap verceğim. Daha önce oracle kullandığınızı söylemiştiniz. "procedure" kullandınızmı hiç ?
APEX ile istenmediği için zate php öğreniyorum ben de. Zaten procedure,trigger package kullanabilsem burada çok şey basit olacak da olduramıyorum işte :)
Benim yaptığım şey üye vb. değil aslında. tahakkuk işlemleri sırasında yapılcak işlemler var. Personel kartı var. Banka Hesap numaraları değişebilir. Telefon değişebilir vs vs. Onun için sormuştum. Fakat ya guncelle.php yapacağım ya da kayıtlı idleri arraye atıp varsa kaydet butonu disabled yapacağım İlginiz için çok teşekkürler.
Php
benim anladıgım kadarı ile siz web tabanlı bir muhasebe programı gibi birsey mi hazırlamaya calısıyorsunuz ???
burada tek tek kod yazmayacagım sadece size mantıgını anlatayım diyelim ki yeni bir personel kartı acacaksınız ilk once bir kayıt acmalısınız yani mysqlde kayıt olusturuyorsunuz bunun icin
insert into kullandınız
bunun icinde personelin tüm bilgileri var ad soyad dogum tarihi tc kimlik yaş vb
bu komuttan sonra artık bir kullanıcı mevcut simdi ise fark ettinizki girilen verilerde hata var iste burada baslıyor update komutu bu
update yapmak icin bir verinin veri tabanında olması gerekir en azından ad soyad olarak geri kalan kısmını artık degistirme yapabilirsiniz
o nedenle once insert daha sonra update
yinede beceremezseniz html olarak paylasın kodlamasını yapalım yoksa gormeden su sekilde bu sekilde demek cok dogru degil
Php
şimdi bu dediginizi yapabimek icin. birseyleri esas almak lazim. yani neye göre bu kullanicilar ayni diyerekten varsa guncelleyip yoksa kayddiceksiniz. eşsiz ve degismeyen bisey lazim. bu deger de yanlis yazilmicak bisey olmali.