• User

    [SQL] Estrarre dati random da database

    Ciao a tutti,
    devo estrarre gli annunci dal database con questo script, ho modificato alcune righe per poter estrarre i dati in modo causale ad ogni aggiornamento della pagina, ma mi mostra sempre gli stessi. potreste aiutarmi? grazie 1000

    
    <%
    Response.Buffer = True
    lineIndex = 0
    Set connect = Server.CreateObject("ADODB.Connection")   ' Prepare to connect to database
    connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath ("annunci.mdb")
    
    ClassTopic = Trim(session("k"))
    
    whereclause = "WHERE "
    whereclause = whereclause &"Classifieds.ClassTopic = '" &  ClassTopic & "'" 
     
    'query = "SELECT * FROM classifieds "& whereclause &"And ClassExpire > Date()" & "ORDER BY ClassPosted DESC"
    query = "SELECT * FROM classifieds "& whereclause &"And ClassExpire > Date()" & "ORDER BY RND(ClassID)"
    
    set recordset = Server.CreateObject("ADODB.Recordset")
    recordset.CursorType = 2  ' adOpenStatic
    recordset.Open query, connect
    %>
    <!-- fine -->
    <table width="100%"><tr><td> 
    <!-- intestazione annunci -->
    <div>
    <% i=0
    Do While Not recordset.EOF 
         NoResults = False
    if i=2 then exit do
    %>
    <table width="98%" cellpadding="0" cellspacing="0" border="0" style="font-size: 10pt">
    <tr><td>
    <a href="annunci/ads_display.asp?Key_m=<%=recordset("ClassTopic")%>"> <b><%=recordset("ClassAdTitle")%></b></a><br> 
    <b>rif. n° <%=recordset("ClassID")%> dal <%=recordset("ClassPosted")%> al <%=recordset("ClassExpire")%></b>
    <%=left(recordset("ClassDescription"),100)%>...<br><br></td></tr>
    </table>
    <%
    i=i+1
    recordset.MoveNext
    Loop
    %>
    <%recordset.close%>
    </div><!-- intestazione anuunci#--></td></tr>
    </table>
    

  • Moderatore

    Ciao,
    Access non ordina in modo casuale, ma pseudo casuale.

    Qui trovi un'ottima soluzione al tuo problema.

    Ciao
    :ciauz:


  • Moderatore

    Ottima risorsa Legolas 😉

    Grazie

    :ciauz: