Visualizzazione dei risultati da 1 a 10 su 10

Discussione: randomize

  1. #1

    randomize

    Ho provato un po' degli script che ho trovato nel forum, ma proprio non riesco a farlo funzionare. Mi serve estrarre 3 record casuali dalla tabella "domande". Tutti quelli che ho provato mi danno errore (la maggior parte su "count")

    Qualcuno mi sa aiutare?
    Grazie
    Alessandro

    codice:
    <form name=modulo method=post action=ris.asp>
    <%
    'verifica dell'username e passsword
    sql0="select * from [users] where username='"&session("user")&"' and password='"&session("pass")&"' and tipologia=1"
    set rs0=con.execute(sql0)
    	if rs0.eof then
    	response.write("Username o password errati")
    	else
    response.write("Benvenuto " &session("user")& "
    ")
    
    
    
    sql1="SELECT domanda from [domande]"
    set rs1=con.execute(sql1)
    X=1
    do while not rs1.eof
    vdom=rs1("domanda")
    response.write ("
    <input type=hidden name=vd" &x& " value=""" &vdom& """></input>" &vdom& "
    ")
    
    sql2="SELECT * from [domande] where [domanda]='"&vdom&"'"
    set rs2=con.execute(sql2)
    vris1=rs2("risposta 1")
    vris2=rs2("risposta 2")
    vris3=rs2("risposta 3")
    
    
    response.write("<input type=radio name=r" &x& " value=""" &vris1& """>" &vris1& "
    ")
    response.write("<input type=radio name=r" &x& " value=""" &vris2& """>" &vris2& "
    ")
    response.write("<input type=radio name=r" &x& " value=""" &vris3& """>" &vris3& "
    ")
    x=X+1
    rs1.movenext
    loop
    response.write("<input type=submit class=testo2 value=Invia>")
    end if
    %>

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Che database usi?
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3

  4. #4
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Se ti serve estrarre records casuali, hai dato uno sguardo quì?
    http://www.aspitalia.com/articoli/db/random.aspx
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  5. #5
    Ho provato il link, ma non mi funziona comunque.
    Ho modificato così:
    codice:
    <form name=modulo method=post action=ris.asp>
    <%
    'verifica dell'username e passsword
    sql0="select * from [users] where username='"&session("user")&"' and password='"&session("pass")&"' and tipologia=1"
    set rs0=con.execute(sql0)
    	if rs0.eof then
    	response.write("Username o password errati")
    	else
    response.write("Benvenuto " &session("user")& "
    ")
    
    
    SQL = "SELECT MAX(id) AS MaxId FROM Domande"
    set rs = con.Execute(SQL)
    If Not rs.Eof Then
        MaxId = rs("MaxId ") 
    Else
        MaxId = 0
    End If
    
    Randomize
    RandomNumber = Rnd * MaxId
    SQL1 = "SELECT TOP 1 * FROM Domande WHERE id >= " & RandomNumber
    set rs1 = con.Execute(SQL1)
    If Not rs1.Eof Then
        Response.Write rs1("id") & " - " & rs1("domanda")
    Else
        Response.Write "Nessuna domanda"
    End If
    X=1
    do while not rs1.eof
    vdom=rs1("domanda")
    response.write ("
    <input type=hidden name=vd" &x& " value=""" &vdom& """></input>" &vdom& "
    ")
    
    sql2="SELECT * from [domande] where [domanda]='"&vdom&"'"
    set rs2=con.execute(sql2)
    vris1=rs2("risposta 1")
    vris2=rs2("risposta 2")
    vris3=rs2("risposta 3")
    
    
    response.write("<input type=radio name=r" &x& " value=""" &vris1& """>" &vris1& "
    ")
    response.write("<input type=radio name=r" &x& " value=""" &vris2& """>" &vris2& "
    ")
    response.write("<input type=radio name=r" &x& " value=""" &vris3& """>" &vris3& "
    ")
    x=X+1
    rs1.movenext
    loop
    response.write("<input type=submit class=testo2 value=Invia>")
    end if
    %>
    mi dà errore:
    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. 
    /dydale/quiz/quiz.asp, line 14
    La riga 14 è quella in grassetto

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Ma hai nella tabella il campo id?
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    Oops, avevo sbagliato a digitare (is al posto di id).

    Non mi dà più errore, ma non estrae neanche un record ("Nessuna domanda"). Perché? Nel db ci sono attualmente 3 record (domande).

  8. #8
    Finalmente sono riuscito a farlo funzionare. Ma ho ancora un piccolo problema. Voglio estrarre 3 record, ma a volte ne estrae solo 2 (credo che utilizzi l'ID=0 che non corrisponde ad alcun record). Come posso fare per evitare che mi mostri solo 2 record (invece di 3 - vorrei che fossero sempre 3).

  9. #9
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Ipotizziamo che devi estrarre casualmente un numero compreso tra 1 e 10
    codice:
    Dim intValore
    intValore = (10 - 1) *Rnd() + 1
    Non uso Access e non so di preciso se quanto ti dirò può esserti utile.
    Fai una query con TOP 1 e ORDER BY tuoCampoId DESC
    poi assegni ad un array di indice 2 (se vuoi estrarre 3 records casuali) tre valori random.

    La query di estrazione la fai con il test di appartenenza IN, passando i valori dell'array, in modo da cavartela con una sola query, appunto.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  10. #10
    Grazie. Ora funziona

    Ciao

    Alessandro

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.