• 07-07-2010, 18:21:26
    #1
    Merhaba Arkadaşlar;

    Sitemde köşe yazarları çok fazla olduğu için anasayfada sınırlamak istiyorum ilk 5 yazarı gösterip diğerlerini başka sayfada göstermem mümkünmü acaba bu konuda bana yardımcı olursanız sevinirim. Birde scriptin özelliğini olan yeni yazı eklendiğinde ilk sıraya o geçiyor 5 yazarı nasıl sabitleyebilirim ?

    Script: mydesing haber sistemi

    Sitem www.kktcmedya.org

    Yardımlarınızı bekliyorum

    İstediğim Resim



    Uploaded with ImageShack.us

    Yazarlar.asp kodları

    <!--#include file="../include/blok_include.asp"-->
    <%
    Dim yBaslikMenu
    Dim yBasliklar
    Dim yResimler
    Dim yTarihler
    Dim intYazarToplam
    Dim strYazarStyle
    
    yBaslikMenu = "<ul>"
    yBasliklar = ""
    yResimler = ""
    yTarihler = ""
    intYazarToplam = 0
    
    Set rs = Server.CreateObject("Adodb.Recordset")
    rs.Fields.Append "Haber_ID", 3
    rs.Fields.Append "Baslik", 200, 255
    rs.Fields.Append "Yazar", 200, 255
    rs.Fields.Append "Resim", 200, 255
    rs.Fields.Append "Tarih", 7
    rs.Open
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler", adoCon, 1, 3
    If Not kdMenu.Eof Then
    	Do While Not kdMenu.Eof
    		SQL = "SELECT"
    		If strVtTuru <> "mySQL" Then SQL = SQL & " TOP 1"
    		SQL = SQL & " haberID, baslik, tarih, editor FROM tblHaberler WHERE kategori = "& intKoseYazilari &" AND editor = "& kdMenu("UyeID") &" AND Durum = "& strDBTrue &" AND onay = "& strDBTrue &" ORDER BY tarih DESC"
    		If strVtTuru = "mySQL" Then SQL = SQL & " LIMIT 1"
    		kdYardimci.Open SQL, adoCon, 1, 3
    		If Not kdYardimci.Eof AND IsNull(kdMenu("Ad")) = False Then
    			With rs
    				.Addnew
    				.Fields("Haber_ID") = kdYardimci("haberID")
    				.Fields("Baslik") = kdYardimci("baslik")
    				.Fields("Yazar") = kdMenu("Ad")
    				.Fields("Resim") = kdMenu("Resim")
    				.Fields("Tarih") = kdYardimci("tarih")
    				.Update
    			End With
    		End If
    		kdYardimci.Close
    	kdMenu.Movenext
    	Loop
    End If
    kdMenu.Close
    rs.Sort = "Tarih DESC"
    
    If Not rs.Eof Then
    
    	intLooper = 1
    
    	Do While Not rs.Eof
    
    		If intLooper = 1 Then strYazarStyle = "block" Else strYazarStyle = "none" End If
    
    		yBaslikMenu = yBaslikMenu & "<li><a onmouseover=""javascript:yazarManset('"& intLooper &"')"" href="""& LinkVer("yazar", rs("Haber_ID"), rs("baslik"), rs("Yazar")) &""">"& rs("Yazar") &"</a></li>"
    		yResimler = yResimler & "<img id=""resim-"& intLooper &""" src="""& strScriptYolu &"upload/resimler/yazar/"& rs("Resim") &""" onError=""this.src='"& strScriptYolu &"upload/resimler/yazar/resim_yok.gif';"" border=""0"" style=""display:"& strYazarStyle &""" />"
    		yTarihler = yTarihler & "<span id=""tarih-"& intLooper &""" class=""yazar-tarih"" style=""display:"& strYazarStyle &""">"& TarihFormatla(rs("Tarih"),0) &"</span>"
    		yBasliklar = yBasliklar & "<span id=""baslik-"& intLooper &""" class=""yazar-baslik"" style=""display:"& strYazarStyle &""">"& rs("Baslik") &"</span>"
    		intLooper = intLooper + 1
    		intYazarToplam = intYazarToplam + 1
    
    		rs.Movenext
    	Loop %>
    
    	<script type="text/javascript" language="JavaScript">
    	function yazarManset(divID) {
    	
    		for (i=1;i<=<%=intYazarToplam%>;i++) {
    			document.getElementById('resim-'+i+'').style.display = 'none';
    			document.getElementById('tarih-'+i+'').style.display = 'none';
    			document.getElementById('baslik-'+i+'').style.display = 'none';
    		}
    		
    		document.getElementById('baslik-'+divID+'').style.display = 'block';
    		document.getElementById('resim-'+divID+'').style.display = 'block'; 
    		document.getElementById('tarih-'+divID+'').style.display = 'block';
    	}
    	</script><%
    End If
    rs.Close
    
    If intYazarToplam > 0 Then %>
    	<table width="100%" cellpadding="0" cellspacing="1" border="0" class="yazar-tablo">
    	<tr>
    		<td class="yazar-avatar"><%=yResimler%></td>
    		<td class="yazar-basliklar"><%=yBasliklar%><%=yTarihler%></td></tr>
    	<tr>
    		<td colspan="2" class="yazar-ad"><%=yBaslikMenu%></td></tr>
    	</table><%
    End If %>
  • 07-07-2010, 21:47:49
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba hocam ,

    Tabiki göstermen mumkun tblUyeler tablosunu 5 adetle sınırlıcaksın. şöle yaparak denermısın
    kdMenu.Open "SELECT top 5 UyeID, Ad, Resim FROM tblUyeler", adoCon, 1, 3
  • 07-07-2010, 22:38:37
    #3
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler", adoCon, 1, 3
    Dediğiniz kodu üst tarafdaki kodla değiştirdim ama olmadı hata verdi
  • 08-07-2010, 07:57:46
    #4
    Üyeliği durduruldu
    Mysql 'de top kullanımı çalışmaz. MySQL hata verir.

    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler limit 0,5;", adoCon, 1, 3

    kodu işine yarar sanırım.
  • 08-07-2010, 22:30:57
    #5
    SahiNET adlı üyeden alıntı: mesajı görüntüle
    Mysql 'de top kullanımı çalışmaz. MySQL hata verir.

    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler limit 0,5;", adoCon, 1, 3

    kodu işine yarar sanırım.
    çok teşekkürler işe yaradı, bir şey daha sorucam istediğim yazarları nasıl çıkarabilirim sabit hiç değişmicek şekilde benim seçtiklerimi
  • 09-07-2010, 12:38:33
    #6
    Üyeliği durduruldu
    2 farklı sql sorgulatarak yapabilirsiniz.

    tblUyeler tablosuna oncelike diye bir sütun oluşturun, veri türünü sayı (INT) seçin,

    1 = öncelikli olanlar olsun diyelim
    0 = normal yazarlar olsun.

    Şimdi ilgili sayfada yazarları listelettiğin bölümü aynen kopyalayıp, altına tekrar yapıştırın.

    1. olanda SQL sorgunda: (öncelikli olanlar için)
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=1 limit 0,5;", adoCon, 1, 3

    2. SQL sorgusunda ise:
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=0 limit 0,5;", adoCon, 1, 3

    gibi bir şey yaparak istediğiniz sonucu elde edebilirsiniz.

    kolay gelsin.
  • 09-07-2010, 12:43:15
    #7
    SahiNET adlı üyeden alıntı: mesajı görüntüle
    2 farklı sql sorgulatarak yapabilirsiniz.

    tblUyeler tablosuna oncelike diye bir sütun oluşturun, veri türünü sayı (INT) seçin,

    1 = öncelikli olanlar olsun diyelim
    0 = normal yazarlar olsun.

    Şimdi ilgili sayfada yazarları listelettiğin bölümü aynen kopyalayıp, altına tekrar yapıştırın.

    1. olanda SQL sorgunda: (öncelikli olanlar için)
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=1 limit 0,5;", adoCon, 1, 3

    2. SQL sorgusunda ise:
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=0 limit 0,5;", adoCon, 1, 3

    gibi bir şey yaparak istediğiniz sonucu elde edebilirsiniz.

    kolay gelsin.
    bu şekilde olabilir veya otomatik yapmak istemiyorsanız sql sorgunuz;

    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where UyeID=1 and UyeID=2 and UyeID=3 and UyeID=4 and UyeID=5;", adoCon, 1, 3


    olarak üye id lerini direk sql sorgusuna yazabilirsiniz.. limit belirtmeyede gerek kalmaz.
  • 10-07-2010, 23:27:16
    #8
    SahiNET adlı üyeden alıntı: mesajı görüntüle
    2 farklı sql sorgulatarak yapabilirsiniz.

    tblUyeler tablosuna oncelike diye bir sütun oluşturun, veri türünü sayı (INT) seçin,

    1 = öncelikli olanlar olsun diyelim
    0 = normal yazarlar olsun.

    Şimdi ilgili sayfada yazarları listelettiğin bölümü aynen kopyalayıp, altına tekrar yapıştırın.

    1. olanda SQL sorgunda: (öncelikli olanlar için)
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=1 limit 0,5;", adoCon, 1, 3

    2. SQL sorgusunda ise:
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where oncelik=0 limit 0,5;", adoCon, 1, 3

    gibi bir şey yaparak istediğiniz sonucu elde edebilirsiniz.

    kolay gelsin.
    Bunu yapmam için mysql de değişiklik yapmam lazım ve mysql yüklemem çok zor oluyor biraz şişkinde tekrar teşekkürler

    LineBilisim adlı üyeden alıntı: mesajı görüntüle
    bu şekilde olabilir veya otomatik yapmak istemiyorsanız sql sorgunuz;

    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where UyeID=1 and UyeID=2 and UyeID=3 and UyeID=4 and UyeID=5;", adoCon, 1, 3


    olarak üye id lerini direk sql sorgusuna yazabilirsiniz.. limit belirtmeyede gerek kalmaz.
    Vermiş olduğunuz kodları ekledim ama yazarlar bölümü çıkmadı nerde hata yapmış olabilirim ?
  • 11-07-2010, 00:16:46
    #9
    Üyeliği durduruldu
    kdMenu.Open "SELECT UyeID, Ad, Resim FROM tblUyeler where UyeID=1;", adoCon, 1, 3

    olarak denermisin. Bakalım sadece 1. üye çıkacak mı.

    Ayrıca belirtilen üye ID leri, listeleteceğin yazarların ID leri ile aynı değil mi?