"UPDATE products SET counter = counter+1 WHERE id = " & ProductId
Bu sadece varsa update yapar
ama diger sekilde ayarlaman icin,
kaydi cek varsa update et yoksa ekle![]()
Arkadaşlar yapmak istedigim veritabanında kelime bölümünde aynı kayıt varsa adet bölümündeki sayıyı 1 artırmak.Eğer yoksa yeni kayıt yapmak bunu nası yapabilirim acaba?
"UPDATE products SET counter = counter+1 WHERE id = " & ProductId
Bu sadece varsa update yapar
ama diger sekilde ayarlaman icin,
kaydi cek varsa update et yoksa ekle![]()
FERRUH.MAVİTUNA - İnanmıyorum, yeni site!
Yapmam gerekenin o oldugunu biliyorum ancak kodu yazamadım.Aşağıdaki koda bakabilirisin.
<%
kelime=Trim(request.querystring("kelime"))
Set arm=Baglanti.Execute("Select * from arama_motoru ")
do while not arm.eof
if arm("kelime")<>kelime then
call ekle
else
call duzenle
end if
arm.movenext:loop
sub ekle
adet = request.form("adet")+1
baglanti.execute("insert into arama_motoru (kelime,adet,tarih) values ('"& kelime &"',"& adet &",'"& now() &"')")
end sub
sub duzenle
adet = arm("adet")+1
Baglanti.Execute ("update arama_motoru set adet="& adet &",tarih='"& now() &"' where kelime=('"& kelime &"')")
end sub
arm.close
set arm=nothing
%>
Benim tavsiyem önce direk UPDATE sorgusunu yapıp etkilenen kayıt sayısına bakarak hareket etmek yönünde.
Yukaridaki kodu su sekilde cevirirsen,
1) Kelime DB de var mi diye kontrol et (wHERE kelime = 'xxx')
Kayit dondumuyu EOF AND BOF ile test edebilirsin
2) Varsa update et
UPDAte i yukarida gosterdim
3) Yoksa ekle
Bunu kesinlikle yapma yaoman gereken WHERE kullanmak ve BOF EOF ile kayit dondu mu donmedi mi diye bakmak.Kod:Set arm=Baglanti.Execute("Select * from arama_motoru ")
FERRUH.MAVİTUNA - İnanmıyorum, yeni site!
Veritabanını daha az yoracağını düşündüğümden hala önce sanki kayıt varmış gibi çalıştırılan bir UPDATE sorgusu ve etkilenen kayıt sayısı 0'sa çağrılan bir INSERT sorgusunda ısrar ediyorum
Ancak bu soul'un cevabının yanlış olduğu anlamına gelmiyor tabi ki![]()
PHP Kodu:<%
kelime=Trim(request.querystring("kelime"))
Set arm=Baglanti.Execute("Select * from arama_motoru ")
do while not arm.eof
Set kontrol = conn.Execute("SELECT COUNT(*) AS records from arama_motoru where kelime = '" & kelime & "'")
Sonuc = CInt(kontrol(0))
'kayıt bulunamadı
if Sonuc=0 then
'Ekleme işlemlerini yap.
'kayıt bulundu.
elseif Sonuc>0 then
'Counterı 1+ yap
end if
arm.movenext
loop
%>
Bilgi paylaşmak için vardır!