ASP Rehberi , ASPRehberi.Net - ASP ve ASP.NET Konuları , Scriptleri , Hosting , Programlar , Araçlar

 # 14 Mayıs 2008, Çarşamba
 
 #  Kategoriler » ASP » Makaleler
 

Puan sistemi Bu içeriğin puanı : 3,9 5378 Görüntülenme
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.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.
Makale çok detaylı oldu, sorularınızı forumlarımızda bizimle paylaşabilirsiniz.
 Telif : Serdar Toros | Eklenme : 3 Haziran 2005, Cuma
 
 

http://www.asprehberi.net/Makaleler/2433

  Test Et
 

Bu içerik hakkında 13 yorum yapılmış

 

 
İsminiz :
Mail Adresiniz :
Yorum
:
   

     

// Gizle
ASP Rehberi Mini Editör

  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
 Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle Form 'a gülücük ekle Form 'a gülücük ekle


 
 
Yorumlar(13) Not : Yorumlar zamana göre son yorumdan ilk yoruma doğru(azalan) biçimde sıralanmıştır.
Yorumlarınız site yöneticileri tarafından onaylandıktan sonra eklenecektir.
+ OLMUYO YA 6 SAAT UĞRAŞTIM ARKADAŞLAR YARDIM EDERMİSİNİZ AYNISINI YAPTIM TABLO İSMİNİ DEĞİŞTİRDİM VERİTABANI BAĞLANTISI YAPTIM 500 İÇ SUNUCU HATASI VERİYOR.
Yazan : klkl | Zaman : 1 Ağustos 2007 Çarşamba, Saat 01:23
 
+ tebrikler çok faydalı oluyosnuz gerçekten başarınızın devamnıı dilerim.
Yazan : mehmet bilir | Zaman : 11 Ocak 2007 Perşembe, Saat 23:30
 
+ ARKADAŞLAR HAZIR YAPILMIŞ OLARAK UPLOAD EDİN BİZDE KULLANALIM LÜTFEN..
Yazan : arif | Zaman : 8 Nisan 2006 Cumartesi, Saat 13:41
 
+ ahahah 7.5 saat sonra yapmayı becerdim hll bana
Yazan : memooooooooooo | Zaman : 6 Ekim 2005 Perşembe, Saat 19:41
 
+ ulan çüş be 6 sattir uraşıom bi mok olmadı....
Yazan : memo can | Zaman : 6 Ekim 2005 Perşembe, Saat 17:27
 
+ Çalışmanız gayett güzel... Yıldız resimleri için adres : http://www.phpbbhacks.com/rankimages.php  umarım işinizi görür
Yazan : Mustafa Genç | Zaman : 29 Temmuz 2005 Cuma, Saat 11:42
 
 .: Sayfalar  1. 2. 3.
 
# Kategori'nin Yenileri

İsim

Hit

Turuncu Galeri (tr)

2184

Haydi okullar internete.... (tr)

201

rc0der Reklam Sistemi v1.0 (tr)

541

HiddenChest İş ve Bayilik Başvuru Formu (tr)

1153

TradeSE E-Ticaret Yazılımı (tr)

332

Link Portal 2007 3 Temalı (tr)

1470

Gupse Medya Linkleri v0.1 (tr)

383

HiddenChest Ziyaretçi Defteri (tr)

1358

HiddenChest Kayan Haber (tr)

1742

HiddenChest Aktif/Pasif Haber Sistemi 1.1 (tr)

771

 
 
# Kategori'nin Popülerleri

İsim

Hit

IIS Kurulumu ve Yazma İzni

68718

Üyelik Sistemi Yapımı

49277

Veritabanı Tablo İşlemleri

31205

MS SQL Server - 1

30215

Hazır Site v2.1 (tr)

26893

Klasör Şeklinde Linkler(404 Yönetimi)

22133

Sayfaları şifreleme(ENCODE)

20256

MS SQL Server - 2

20094

MS SQL Server - 3

14332

Include Yöntemleri

13023

 
  # AKTİF ÜYELER
Aktif üye yok
 
 
 

 
 ASP Rehberi © 2004 - 2008
 Tasarım ve Programlama : Serdar TOROS
 ASPRehberi.Net web sitesi SiDEnet sunucularından yayınlanmaktadır.

[ 0,20 ]    ASPRehberi.NET RSS Kaynağı   Bu site Microsoft SQL Server Veritabanı kullanmaktadır

eXTReMe Tracker