Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 41

Discussione: Doppia query

  1. #1
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502

    Doppia query

    Sto costruendo un piccolo sito che comprende una registrazione, un login, e altre opzioni tra cui la cancellazione dell'account. Ho buttato giu questo inizio del codice:

    codice:
    <%
    if len(session("username")) > 0 then utente = "" & session("username") & "" end if
    
    set conn = server.CreateObject ("ADODB.Connection")
    conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mapPath("database.mdb")
    
    set rs = server.CreateObject ("ADODB.Recordset")
    sSQL="Delete * from Utenti where Id='23'"
    rs.open sSQL,conn,3,3
    Il problema è che,l' ID che deve cancellare, è fisso cioè 23. Se io invece, volessi fare un ID "mobile" che sia dell'utente che ha effetuato il login? Ho pensato così ma credo sia una bagianata: fare una doppia query: la prima mi estrae la riga del utente e la seconda mi cancella lutente con l'id rs("Id") di quel utente. Consigliatemi :rollo:

  2. #2
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    Re: Doppia query

    Originariamente inviato da Vash SD
    Sto costruendo un piccolo sito che comprende una registrazione, un login, e altre opzioni tra cui la cancellazione dell'account. Ho buttato giu questo inizio del codice:

    codice:
    <%
    if len(session("username")) > 0 then utente = "" & session("username") & "" end if
    
    set conn = server.CreateObject ("ADODB.Connection")
    conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mapPath("database.mdb")
    
    set rs = server.CreateObject ("ADODB.Recordset")
    sSQL="Delete * from Utenti where Id='23'"
    rs.open sSQL,conn,3,3
    Il problema è che,l' ID che deve cancellare, è fisso cioè 23. Se io invece, volessi fare un ID "mobile" che sia dell'utente che ha effetuato il login? Ho pensato così ma credo sia una bagianata: fare una doppia query: la prima mi estrae la riga del utente e la seconda mi cancella lutente con l'id rs("Id") di quel utente. Consigliatemi :rollo:
    secondo me fai prima al login creare una session con l'id e poi la recuperi per la cancellazione...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  3. #3
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Giustissimo, hai ragione. La parte del login l'ho modificata così:

    codice:
    sql = "SELECT [username] FROM Utenti WHERE [username] = '" & username & "' AND [password] = '" & password & "'"
      set rs = conn.execute(sql)
    
        if rs.eof then
          errore = true
          messaggio = "Login errato!"
        else
          session("username") = rs("username")
          session("id") = rs("ID")
          session("userLogged") = true
        end if
    e poi la parte dove viene chiamata la cancellazione "edit.asp?action=delete" & utente & "" così:

    codice:
    elseif QStr="delete" & utente & "" then
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
     <title>Elimina l'account</title>
    </head>
    <body>
     <div align="center">
      Sei sicuro di voler eliminare il tuo account?
      <form action="edit.asp?action=deleteaccount">
       <input type="submit" value="Elimina il mio Account">
      </form>
     </div>
    </body>
    </html>
    <%
    elseif QStr="deleteaccount" then
    	dim conn
    	set conn = server.CreateObject ("ADODB.Connection")
    	conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mapPath("database.mdb")
    	
    	set rs = server.CreateObject ("ADODB.Recordset")
    	sSQL="Delete * from Utenti where Id='" & session("id") & "'"
    	rs.open sSQL,conn,3,3
    	rs.Close
    	set conn = nothing
    il problema, non ho ancora testato se funziona cio che ho scritto, è che quando a verificare il login con la pagina verify.asp mi da il seguente errore sulla riga che ho aggiunto: session("id") = rs("ID")

    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.

    /hetfield/verify.asp, line 23

  4. #4
    ovvio, nella SELECT non lo leggi....

  5. #5
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    ok funziona tutto ho sistemato la select, però.. non mi cancella l'account VVoVe:

  6. #6
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    praticamente non mi esegue quel pezzo di codice

  7. #7
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    con la query delete mi sa che va execute... e puoi fare a meno di usare l'oggetto recordset
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  8. #8
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Originariamente inviato da yro
    con la query delete mi sa che va execute... e puoi fare a meno di usare l'oggetto recordset
    provato ma non funziona non me lo eliminaaaaa!

  9. #9
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    ragazzi, non c'è verso non funziona

  10. #10
    vashinoso, fatti stampare la query e controllala

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.