|
Asp Puan sistemi
Aug 04,2007 00:00
by
dragon111
Bu makale'de herhangi bir içeriğimize nasıl oy sistemi yapabileceğimizi yazacağız.İçerik olarak genel dememin sebebi bu herhangi birşey olabilir. <form name="frmPuan" method="post" action="PuanVer.asp"> <select name="sPuan" size="1"> <% For i=0 To 10 %><option><%=i%></option><% Next%> </select> <input type="hidden" name="id" value="<%=id%>" </form> Formumuz yukarıdadır.Bu form "post" yöntemi ile PuanVer.asp adlı oluşturacağımız sayfamıza gönderilecektir.Bu sayfada ise veritabanımızdaki o id ye ait kayıdı seçtirip Puan veren kişi sayısını 1 arttıracağız ve Toplam puan'a verilen puan 'ı ekleyeceğiz. "PuanVer.asp" adlı sayfamız aşağıdadır.Genel olarak alan ve tablo ismi yazacağım.Kendi bilgilerinizi yazmanız gerekmektedir. <% 'ObjConn isminde veritabanı bağlantınız buraya.. strSQL = "Select * from Tabloismi Where id = " & Request.Form("id") & "" Set ObjRS = Server.CreateObject("Adodb.Recordset") ObjRS.Open strSQL,ObjConn,1,3 ObjRS("ToplamPuan")=ObjRS("ToplamPuan")+Request.Form("sPuan") ObjRS("ToplamKisi")=ObjRS("ToplamKisi")+1 ObjRS.Update 'İsterseniz bir daha göndermesini engellemek için cookie gönderimini burada yapabilirsiniz.Hemen altta örnek bir kod yazdım. Response.Cookies("IcerikPuan")(Request.Form("id"))=Request.Form("sPuan") Response.Cookies("IcerikPuan").Expires = #01/10/2020# %> Evet puan kayıt işlemide yapılmış oldu.Örnek olarak bir cookie yolladık, bu cookie'de içeriğin id numarası ve karşılığı olarak göndermiş olduğu puanı yazdık. Şimdi bu puanı nasıl göstereceğimizi öğreneceğiz.Yazacağım kodlarda ise veritabanınızdan querystring ile aldığım id ye göre içerik seçilecek ve bu içeriğin puan'ı yazdırılacak. <% 'ObjConn isminde veritabanı bağlantınız buraya.. strSQL = "Select * from Tabloismi Where id = " & Request.Form("id") & "" Set ObjRS = Server.CreateObject("Adodb.Recordset") ObjRS.Open strSQL,ObjConn,1,3 If ObjRS("ToplamKisi") <> 0 Then Response.Write "Puan : " & Round(ObjRS("ToplamPuan") / ObjRS("ToplamKisi"),1) Else Response.Write "Bu içeriğe puan verilmemiştir." End If %> İçeriğe ait puanımızı yazdırdık.Yapmamız gerek herşey bukadar. Önemli Not : Veritabanınıza içeriğinizi eklerken ToplamKisi ve ToplamPuan adlı alanlarınıza "0" değerinin eklendiğinden emin olmalısınız. Extra olarak cookie'ye göre nasıl form çıkarıp gösterimi yapılacağını görelim.Yukarıda gönderilen cookie değerlerine göre işlem yapacağız.İçeriğimizin "id" numarasına gösterildiği sayfada yapacağız bu işlemi.Veritabanındaki kayıdın numarasını "id" olarak kabul ediyoruz tekrardan. <% IcerikIDPuan = Request.Cookies("IcerikPuan")(id) If IcerikIDPuan <> "" Then Response.Write "Bu içeriğe " & IcerikIDPuan & " puan vermişsiniz." Else %> 'Yukarıdaki puan verme formunu buraya koyabilirsiniz. <% End If %> Evet bunuda öğrendiğimize göre sonbirşey kalıyor.Puanlarımızı yıldız olarak göstermek; Bunu yapmamız zorunlu değildir fakat yapmak isteyenler olabilir.İçeriğimizin puanı kadar for döngüsü yapabiliriz.O kadar yıldız çıkabilir. Bunun için bize bir adet .gif dosyası gerekiyor.Bunu yıldız olarak kabul edelim ve ismide "Doluyildiz.gif" olsun.Birde kaç puan üzerinden olduğunu belirlemek için "Bosyildiz.gif" adlı bir resim daha hazırlayın. Aşağıda buna göre bir döngü yapacağız.İçeriğimizin gösterildiği adresde yine veritabanımızdan alanı seçtirelim ve puanımızı yazdıralım <% 'Veritabanımızdan ObjRS ile yukarıda örneklerdeki gibi id ye göre kayıt seçtirdik. If ObjRS("ToplamKisi") <> 0 Then IcerikPuan = Round(ObjRS("ToplamPuan") / ObjRS("ToplamKisi"),0) For i=1 to 10 If i<IcerikPuan Then Response.Write "<img src=doluyildiz.gif>" Else Response.Write "<img src=bosyildiz.gif>" End If Next Else Response.Write "Bu içeriğin puanı yoktur." End If %> Evet böylece yıldız sistemimizi de yapmış olduk.Burada bir 1 den 10 a kadar bir döngü başlatıyoruz.Bu döngüde eğer döngünün sırası yani "i" içeriğimizin puanından küçük ise dolu yıldız, değil ise boş yıldız resmi ekrana çıkartıyoruz.Bu resimler yanyana çıkacak ve toplamda 10 adet yanyana yıldız çıkacaktır......
|