Visualizzazione dei risultati da 1 a 4 su 4

Discussione: db access e record

  1. #1

    db access e record

    Ciao a tutti,
    sto creando un questionario on-line, ma non riesco a fare una cosa.

    Vorrei creare un questionario personalizzato a seconda dell'utente che si collega (per questo faccio fare un login). Dopo il login, vorrei far apparire le domande (facendo un controllo nella tabella "Q1 Domande" in cui sono presenti "username" e "domande"). In pratica se userA si collega devo mostrare solo le domande corrispondenti a userA, se si collega userB solo quelle di userB.
    I problemi sono 2:
    - come faccio a mostrare tutte le domande? (nel codice qui sotto mi mostra solo la prima - ho cercato un po' e ho trovato che dovrei usare Do While e Loop, ma non so come)
    - come faccio a filtrare in modo da mostrare solo quelle dell'utente che si è collegato?

    Grazie a tutti

    codice:
    <%@LANGUAGE = JScript%>
    <%
        var azione = new String(Request.QueryString("azione"));
    %>
    <html>
     <head>
      <title>Login</title>
     </head>
    <body>
    
    <%
        if (azione == "OK")
        {
            var login = new String(Request.Form("login"));
            var password = new String(Request.Form("password"));
            var login2 = login.replace(/'/g,"''");
            var password2 = password.replace(/'/g,"''");
    
            var Cn = new ActiveXObject("ADODB.Connection");
                Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("QS5.mdb"));
            var Sql = "SELECT * FROM [Q1 Login],[Q1 Domande] WHERE [Q1 Login].login = '" + login2 + "' AND password = '" + password2 + "'";
            var EseguiLogin = Cn.Execute(Sql);
    
    
    if (EseguiLogin.EOF) 
    { 
    Cn.Close(); 
    Response.Write("ACCESSO NEGATO"); 
    Response.End; 
    } 
    else 
    { 
    Session("login") = EseguiLogin("login"); 
    with (Response) 
    { 
    Write("<p align='center'>"); 
    Write("Benvenuto " + login + "!
    
    "); 
    Write("" + EseguiLogin("Codice Domanda") + ".");
    Write("" + EseguiLogin("Domanda") + "</p>"); 
    } 
    Cn.Close(); 
    
    } 
    } 
    else 
    { 
    %>
    <p align="center">
        <form method="post" action="login.asp?azione=OK">
            UserID
            <input type="text" name="login" size="20">
            Password
            <input type="password" name="password" size="20">
            <input type="submit" value="Login">
        </form>
    </p>
    <%        
        }
    %>
    
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di SPEED78
    Registrato dal
    Jan 2003
    Messaggi
    358
    allora ti consiglio di fare un database con due tabelle così composte
    tabella utenti

    idutente-->contatore
    username-->testo
    password--->testo
    keyquestions--->numeriico

    tabella domande
    iddomanda-->contatore
    domandatext-->memo
    keyquestions--->numerico

    allora ti spigo bene il digramma di flusso:

    1)l'utente fa il login
    2)se è corretto mi variabilizza una variabile di sessione che sarà uguale al campo keyquestions
    3)fa apparire le domande usando come discriminante nella clausola where dell sql la sessione apena aperta ( sql="select domandatext from domande where keyquestions="&session("keyquestions")&" " )
    apro il recordset ...rs=conn.execute(sql)
    4)poi noon fai altro che fare un bel ciclo do while
    do while nor rs.eof
    response.write rs("domandatext")&"
    "
    rs.movenext
    loop

    spero di essere stato chiaro

  3. #3
    Per quanto riguarda il db, ho usato nomi diversi, ma ci sono già le 2 tabelle con quei campi.

    Per quanto riguarda la spiegazione e le stringhe non ho capito niente. Non so niente di ASP, ma dovrei fare il questionario entro fine mese, per cui ho cercato un po' in giro e quello che mi è venuto fuori facendo un po' di copia&incolla è il codice che ho messo nel post precedente.

    Chiedo troppo se ti chiedo di correggere il codice inserendo le stringhe corrette, ad es. il do while, se non ho capito male, dovrebbe andare al posto dell'if, ma così facendo mi dà errore oppure indicandomi un link che mi aiuti a risolvere il problema (eventualmente anche riscrivendo da 0 il codice).

    Grazie 1000

    Alessandro

  4. #4
    Utente di HTML.it L'avatar di SPEED78
    Registrato dal
    Jan 2003
    Messaggi
    358
    spediscimi il database al mio indirizzo salvatcoss@hotmail.com
    e lo faccio al volo

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.