Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Estrarre 5 record random da una tabella

    Salve a tutti
    come da titolo sto cercando di estrarre 5 record in modo random da una tabella/query
    premesso che prima di postare ho fatto un pò di ricerca nel forum e letto qualcosina e trovanto anche un link molto utile al caso
    http://databases.aspfaq.com/database...om-record.html

    da qui ho preso il cod modificato per il mio caso uso questo cod
    Codice PHP:
    <%

    Const 
    adOpenKeyset 1
    Const adLockReadOnly 1
    dim area
    area
    =request.QueryString("area")
    %>

    <% 
         
        
    ' ***** (step 1) ***** 
     
        set rs = conn.execute("SELECT COUNT(ID) FROM qryArticoliInVendita_tutti") 
        rCount = rs(0) 
     
        ' 
    ***** (step 2) ***** 
     
        
    set rs conn.execute("SELECT ID FROM qryArticoliInVendita_tutti"
        
    cnt 
        dim RRs 
        redim RRs
    (rCount
        do while 
    not rs.eof 
            RRs
    (cnt) = rs(0
            
    cnt cnt 
            rs
    .movenext 
        loop 
     
        
    ' ***** (step 3) ***** 
     
        randomize 
        currentRR = cLng(rnd*rCount+0.5) 
        ID = RRs(currentRR) 
     
        ' 
    ***** (step 4) ***** 
     
        
    sql "SELECT * FROM qryArticoliInVendita_tutti WHERE ID=" ID 
        set rs 
    conn.execute(sql
        
    'response.write "ID # " & ID & " = " & rs(0)
        Response.Write "<nome id=""" & rs("idnome") & """/><descrizione h=""" & rs("hdescrizione") &""">" & rs("descrizione") & "</descrizione><foto h=""" & rs("ID") &""">"& rs("foto") &"</foto>"
     
         
        rs.close: set rs = nothing 
        conn.close: set conn = nothing 
    %> 
    beh la cosa sembra fungere x un solo record...se volessi invece estrarre 5 record con questo metodo cosa devo modificare?

    grazie x il Vs tempo
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    ' ***** (step 3) *****

    randomize
    For i=1 to 5
    currentRR = cLng(rnd*rCount+0.5)
    ID1 = RRs(currentRR)

    ' ***** (step 4) *****

    sql = "SELECT * FROM qryArticoliInVendita_tutti WHERE ID=" & ID
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Scusa, prima ho postato per errore prima di aver finito.
    Ho fatto una cosa proprio al volo. Spero ti vada bene.

    ' ***** (step 3) *****

    randomize
    dim ID(4)
    For i=0 to 4
    currentRR = cLng(rnd*rCount+0.5)
    ID(i) = RRs(currentRR)
    Next

    ' ***** (step 4) *****

    sql = "SELECT * FROM qryArticoliInVendita_tutti WHERE ID=" & ID(0) &" AND ID=" & ID(1) &" AND ID="& ID(2) & " AND ID="& ID(3) &" AND ID="& ID(4)
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  4. #4
    ci provo subito grazie..
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    mi da errore!
    questo

    Tipo di errore:
    (0x80020009)
    Eccezione.
    /private/prova.asp, line 44


    con questo script
    Codice PHP:
    <%

    Const 
    adOpenKeyset 1
    Const adLockReadOnly 1
    dim area
    area
    =request.QueryString("area")
    %>

    <% 
         
        
    ' ***** (step 1) ***** 
     
        set rs = conn.execute("SELECT COUNT(ID) FROM qryArticoliInVendita_tutti") 
        rCount = rs(0) 
     
        ' 
    ***** (step 2) ***** 
     
        
    set rs conn.execute("SELECT ID FROM qryArticoliInVendita_tutti"
        
    cnt 
        dim RRs 
        redim RRs
    (rCount
        do while 
    not rs.eof 
            RRs
    (cnt) = rs(0
            
    cnt cnt 
            rs
    .movenext 
        loop 
     
        
    ' ***** (step 3) ***** 
     
        randomize
        dim ID(4)
        For i=0 to 4
        currentRR = cLng(rnd*rCount+0.5)
        ID(i) = RRs(currentRR)
            Next
     
        ' 
    ***** (step 4) ***** 
     
        
    'sql = "SELECT * FROM qryArticoliInVendita_tutti WHERE ID=" & ID 
        sql = "SELECT * FROM qryArticoliInVendita_tutti WHERE ID=" & ID(0) &" AND ID=" & ID(1) &" AND ID="& ID(2) & " AND ID="& ID(3) &" AND ID="& ID(4)
         
        set rs = conn.execute(sql) 
        '
    response.write "ID # " ID " = " rs(0)
        
    Response.Write "<nome id=""" rs("idnome") & """/><descrizione h=""" rs("hdescrizione") &""">" rs("descrizione") & "</descrizione><foto h=""" rs("ID") &""">"rs("foto") &"</foto>"
         
        
    rs.closeset rs nothing 
        conn
    .closeset conn nothing 
    %> 
    cosa sbaglio?
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Qual'è la riga 44?
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  7. #7
    è quella del response...ma
    se invece sostituisco or al posto dell'and nn mi da + errore ma mi fa vedere sempre un solo record

    grazie ancora x la tua disponibilità
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Si OR al posto di AND. Faccio finta che sia colpa della fretta...
    A questo punto ottieni un RS di 5 elementi. Ti sposti all'interno di esso di riga in riga con rs.MoveNext
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  9. #9
    cioè come devo fare?
    con OR mi da sempre un solo record ..

    grazie ancora
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Scusa, non ho capito qual'è il tuo problema. Nel link che hai postato ci sono le soluzioni sia per mssql che per access.

    Con access basta che fai

    SELECT top 5 *
    FROM tabella
    order by rnd(campo_id)

    nel caso invece usassi mysql

    select * from tabella
    order by rand() limit 5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.