Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Kayıt Ol

ufakbir hata yapıyorum ama bı baksanız

ela1196

0
Üye
Katılım
6 Ocak 2011
Mesajlar
52
Tepki puanı
0
yapıyorum uye dogru yanıt verince deneme.db yegidip dogru ve yanlısları ismi karsılıgında topluyor fakat
db de kendi isminin altında her sayfaya girdiğindede bos satır atıyor db ye değerleri" 0" olan en altta verdim

<meta http-equiv="Content-Language" content="tr">
<%
if session("uyedurum") = True Then
%>
<%
Set Baglanti = Server.CreateObject("ADODB.Connection")
Baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("denemem.mdb")
%>
<%
sql = "Select * from puan"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
%>
<%
mahir.AddNew
mahir("kadi")=session("kadi")
mahir.Update
%>
<%
sql = "Select * from puan WHERE kadi='"&session("kadi")&"'"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
mahir("puan")=mahir("puan")-5
mahir("dogru")=mahir("dogru")+0
mahir("yan")=mahir("yan")+1
mahir("toplam")=mahir("dogru")+mahir("yan")
mahir.Update
%>
<META HTTP-EQUIV="refresh" CONTENT="0;URL= yanlis.asp?msg=yanlis">
<%
else
response.redirect "default.asp"
end if
%>



yazan su db deneden dogru topladıgı asagıdaki satırda bos bos "0" veriyor kodda ne yanlıs:ağla:
puankuidkadipuandogruyantoplam
35 123456- 56 12 3 30
37 123456 0 0 0 0
38 123456 0 0 0 0
39 123456 0 0 0 0
 
Katılım
14 Mart 2008
Mesajlar
650
Tepki puanı
3
çok basit.
yukarda
mahir.AddNew
mahir("kadi")=session("kadi")
mahir.Update

satırında sadece kadi alanına değer atıyorsun ve bunuda sessiyon kadi ile yapıyorsun. Diğer alanların accessteki türü rakamsal değer olduğu için ve onlara değer atamadığın için alanlar 0 olarak gözüküyor..
 
Katılım
14 Mart 2008
Mesajlar
650
Tepki puanı
3
bu arada gereksiz kodlama yapmışsın.

mahir.AddNew
mahir("kadi")=session("kadi")
mahir.Update


sql = "Select * from puan WHERE kadi='"&session("kadi")&"'"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
mahir("puan")=mahir("puan")-5
mahir("dogru")=mahir("dogru")+0
mahir("yan")=mahir("yan")+1
mahir("toplam")=mahir("dogru")+mahir("yan")
mahir.Update


yukarda ki kodlamada addnew ile kadi değerini atıyor sonra ise kadi eşlesmesini yapıp alanları dolduruyorsun. Bu kadar gereksiz işlev yaptıracağına addnew altında tüm kodları işletsene.
Yok illa bu şekilde olacak diyorsan o zaman session alanını ' ' arasında yapmalısın. Tam sonuç alırmısın kesinlikle hayır fakat like ile sorgulama metodunuda koyarsan en azından sağlam sonuçlara ulaşırsın...
 

ela1196

0
Üye
Katılım
6 Ocak 2011
Mesajlar
52
Tepki puanı
0
bu arada gereksiz kodlama yapmışsın.

mahir.AddNew
mahir("kadi")=session("kadi")
mahir.Update


sql = "Select * from puan WHERE kadi='"&session("kadi")&"'"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
mahir("puan")=mahir("puan")-5
mahir("dogru")=mahir("dogru")+0
mahir("yan")=mahir("yan")+1
mahir("toplam")=mahir("dogru")+mahir("yan")
mahir.Update




yukarda ki kodlamada addnew ile kadi değerini atıyor sonra ise kadi eşlesmesini yapıp alanları dolduruyorsun. Bu kadar gereksiz işlev yaptıracağına addnew altında tüm kodları işletsene.
Yok illa bu şekilde olacak diyorsan o zaman session alanını ' ' arasında yapmalısın. Tam sonuç alırmısın kesinlikle hayır fakat like ile sorgulama metodunuda koyarsan en azından sağlam sonuçlara ulaşırsın...



alt satıra yine aynı isimle blgi attı dediğinizi yanlısmı yaptım anlamadım istediğim uye girdiği zaman kendi isminin oldugu satırda toplam yapsın alt satıra bos yada aynı isme ait kayıt yapmasındı ama :( neyapmam gerek:aşık:
 

ela1196

0
Üye
Katılım
6 Ocak 2011
Mesajlar
52
Tepki puanı
0
ufak bir if döngusuyle cözdum tşk ederim :hihi:

<meta http-equiv="Content-Language" content="tr">
<%
if session("uyedurum") = True Then
%>
<%
Set Baglanti = Server.CreateObject("ADODB.Connection")
Baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("denemem.mdb")
%>
<%
sql = "Select * from puan"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
%>
<%if kadi=session("kadi")then
%>
<%
sql = "Select * from puan WHERE kadi='"&session("kadi")&"'"
Set mahir = Server.CreateObject("Adodb.Recordset")
mahir.Open sql,Baglanti,1,3
mahir("puan")=mahir("puan")+10
mahir("dogru")=mahir("dogru")+1
mahir("yan")=mahir("yan")-1
mahir("toplam")=mahir("dogru")+mahir("yan")
mahir.Update
end if
%>
<META HTTP-EQUIV="refresh" CONTENT="0;URL= dogru.asp?msg=dogru">
<%
else
response.redirect "default.asp"
end if
%>
;)
 
Katılım
14 Mart 2008
Mesajlar
650
Tepki puanı
3
kodunda yine gereksiz kod satırları mevcut istersen yapmak istediğini belirt. Ben sana en düzgün şekilde kodluyayım..
 

ela1196

0
Üye
Katılım
6 Ocak 2011
Mesajlar
52
Tepki puanı
0
kodunda yine gereksiz kod satırları mevcut istersen yapmak istediğini belirt. Ben sana en düzgün şekilde kodluyayım..

haklısınız cok usta değilim :aşık:
istediğim suydu elimde uyelerin kayıt oldugu bir db birde aldıkları puanları saklayan bir db var
istediğim uye puan kazandıkça deneme.db ye puanı yanlıs dogru ve toplam cevaplarını kaydetmek ti
ama uyenin adının yanında guzelce verileri topluyordu ama altına uyenin adıyla tekrar bir satır acıyordu
yukarda yaptıgımla bu tekrarı kapamaya calıstım oldu ama
dediğiniz gibi
fazladan kod sacmalıgı yapmıs olabilirim:ağla:
 
Üst