Rasgele Veri Alma [Asp]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    turunc4u
    turunc4u's avatar
    Kayıt Tarihi: 16/Ağustos/2006
    Erkek

    Veritabanından rastgele kayıt alma olayı randomize ile yapılan sayı atamasının veritabanından karşılığını bulup çağırmaktır. Ama bazı kayıtlar zamanla silinmiş olsa kayıt bulunamadı hatası oluşacak. Bu hatayı almadan tablomuzdan rasgele kayıt nasıl alırız??!

    SELECT * FROM tablo ORDER BY newid()

    Yukardakini denedim ama Undefined function 'newid' in expression hatası alıyorum. Hata aldığım kodlar aşağıda...

    <%

    Set rsPost = ObjConn.Execute("SELECT TOP 5 * FROM weblog ORDER BY newid()")
    If rsPost.EOF Then
    response.Write(""&emptyPosts&"")
    Else
    while not rsPost.EOF
    %>

    <img src="../icons/cube.gif">&nbsp;<a href="comments.asp?id=<%=rsPost("id")%>"><%=rsPost("headline")%></a><br>

    <%
    rsPost.Movenext
    Wend
    rsPost.Close
    Set rsPost = Nothing
    End If
    %>

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    <%

    set rsPost = ObjConn.Execute("SELECT TOP5 * FROM weblog ORDER BY newid()")
    If rsPost.EOF Then
    response.Write(""&emptyPosts&"")
    Else
    while not rsPost.EOF


    %>

    <a href="comments.asp?id=<%=rsPost("id")%>"><%=rsPost("headline")%></a><br>

    <%


    rsPost.Movenext
    Wend


    End If

    rsPost.Close
    Set rsPost = Nothing


    %>

     

    şöyle veya

     

     

    <%

    set rsPost = ObjConn.Execute("SELECT TOP5 * FROM weblog ORDER BY newid()")
    If rsPost.EOF and rsPost.BOF Then
    response.Write(""&emptyPosts&"")
    Else
    while not rsPost.EOF


    %>

    <a href="comments.asp?id=<%=rsPost("id")%>"><%=rsPost("headline")%></a><br>

    <%


    rsPost.Movenext
    Wend


    End If

    rsPost.Close
    Set rsPost = Nothing


    %>

     

    veya direk normal randomize ile almaya çalış

    < %

    Set vt = Server.CreateObject("ADODB.Connection")

    vt.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")



    set rs = server.createobject("ADODB.Recordset")

    sql = "select top5 * from tablo"

    rs.open sql,vt,1,3



    Randomize

    rastgele = Int((Rnd*Rs.RecordCount)+0)

    Rs.Move(rastgele)

    Response.write Rs("isim")

    %>

     

    veya da şu while wend yerine loop vs kullan aklıma başka gelmiyor :/ newid olayına hiç anlamadım zaten görmediğim bişey  

     

     

     

     

     

     


    :|
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    sanırım accessde çalışmıyor newid olayı sql için geçerli

    ben az önce deneme yaptım şöyle bi fonksiyonla hallettim

     

    <%

    set rs = server.createobject("ADODB.Recordset")

    sql = "select top 5 * from menu order by Rnd(-(1000*id)*Time())"

    rs.open sql,baglanti,1,3





    while not rs.EOF

    %>



    <%=rs("adi")%><br/>



    <%





    rs.Movenext

    Wend



    rs.Close

    Set rs= Nothing





    %>

     


    :|
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    turunc4u
    turunc4u's avatar
    Kayıt Tarihi: 16/Ağustos/2006
    Erkek
    teşekkürler pesimistzombie şimdi deniyorum...
Toplam Hit: 1563 Toplam Mesaj: 4