Puan sistemi

Asp kodları Puan sistemi Hazır program kodları hakkında bilgi paylaş; Bu makale'de herhangi bir içeriğimize nasıl oy sistemi yapabileceğimizi yazacağız.İçerik olarak genel dememin ...
Cevapla
 
Seçenekler
  #1  
Arama 03-02-2008, 10:49
Banlı
Üyelik Tarihi: 18/09/07
Mesajlar: 1.903
 
     WS-Ticareti: (1)
Blog Yazıları: 1
Teşekkürleri: 0
20 Msg. 27 Tşkr.
Rep Gücü: 0 B737 rep gücü epey yüksek

Puan sistemi

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.
Puan sisteminin mantığında ise;
2 adet alanımız olur ve puan verildiği zaman o içeriğe ait olan Puan veren kişi sayısı 1 arttırılır ve toplam puan adlı alanımıza verilmiş puan eklenir.Bir daha oy vermemesini sağlamak için cookie gönderilir(Tamamen engellenmez).O içeriğe ait olan puan gösterilirken toplam puan, puan veren kişi sayısına bölünür ve böylece puan gösterimi yapılmış olur.İsterseniz IF 'li bir döngü ile yıldız sistemi yapabilirsiniz.
Puan sistemine başlamadan önce içerik tablomuz hazır olsun.Bu içerik tablomuzda 2 adet alan oluşturacağız.

Bu alanlar aşağıdadır.

ToplamPuan(Number)
ToplamKisi(Number)

Bu alanları oluşturup değerleri üstteki gibi ayarladıktan sonra sayfamıza geçelim ve puan vermek için bir form oluşturalım.
BU formu hazırlarken içeriğimizin id numarasını almalıyız.Bu id numarası hangi içeriğe oy verdiğimizi belirleyecek.
Anlatımda id numarasını "id" değişkeninde olduğunu varsayacağım.Bu id numarasını genelde o içeriğe ait detayları gösterirken Querystring ile aldığımız değer olabilir.
Şimdi formu oluşturalım, 1 'den 10 'a kadar puanlarımız olsun.Bu rakamı istediğiniz gibi arttırabilirsiniz.

--------------------------------------------------------------------------------

<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.Fo rm("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.
Makale çok detaylı oldu, sorularınızı forumlarımızda bizimle paylaşabilirsiniz.
Alıntı ile Cevapla
Cevapla


Seçenekler


Benzer Konular
Konu Konu Açanlar Forum Cevaplar Güncel Mesajlar
Rapidshare Yeni Şifre Sistemi (Kedili Kod Sistemi) Nasıl Kullanılır? Resimli Anlatım QberT Genel 5 02-05-2008 04:31
3 puan Beşiktaş'ın: 1-2 pc_copatım Spor 0 24-02-2008 12:51
Üç puan Gençlerbirliği'nin haberiz Spor 0 01-12-2007 12:44
Sitede Neden Teşekkür Sistemi Yada Rep Puanı Sistemi Yok? viper İstek - Öneri - Şikayet 7 13-11-2007 06:17

Link vermek için alttaki kodu sitenize ekleyebilirsiniz. Veya Ctrl+C ile Kopyalayınız
Örnek görünüm: Webmaster Sitesi