Visualizzazione dei risultati da 1 a 8 su 8

Discussione: aggiornare il carrello

  1. #1

    aggiornare il carrello

    ho scritto questo per aggiornare il carrello...
    cosa c'e' di sbagliato?
    in pratica gli dico, leggi tutto il carrello, se trovi gia' un prodotto uguale a quello che sto cercando di aggiungere, allora aumenta di 1 la quantita' di quello gia' presente, altrimenti scrivi un nuovo record

    codice:
    ' se lo stesso prodotto e' gia' presente nel carrello aggiorna soltanto la quantita'
    Do while NOT rs.EOF
    	'response.write rs("id_prodotto") &" - " & request.form("id_prodotto") & "
    "
    	If rs("id_prodotto") = request.form("id_prodotto") Then
    		response.write "SI"
    		rs("quantita") = rs("quantita") + 1
    		rs.update
    		GiaPresente = True
    		Exit do
    	Else
    		GiaPresente = False
    	End If	
    	rs.movenext
    Loop
    
    ' altrimenti aggiungi un nuovo prodotto
    If GiaPresente = False Then
    	rs.addnew
    	rs("id_utente") = session("user_session")
    	rs("id_prodotto") = request.form("id_prodotto")
    	rs("nome_prodotto") = request.form("nome_prodotto")
    	rs("quantita") = request.form("quantita")
    	rs.update
    End If

  2. #2
    questo e' il codice completo della pagina
    codice:
    <%
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath(DB)
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "SELECT * FROM carrello WHERE id_utente="&session("user_session"), conn ,3,3
    
    ' se lo stesso prodotto e' gia' presente nel carrello aggiorna soltanto la quantita'
    Do while NOT rs.EOF
    	response.write ("id_prodotto(DB): ")&rs("id_prodotto") &"| id_prodotto:" & request.form("id_prodotto") & "
    "
    	If rs("id_prodotto") = request.form("id_prodotto") Then
    		response.write "SI"
    		'rs("quantita") = rs("quantita") + 1
    		'rs.update
    		GiaPresente = True
    		Exit do
    	Else
    		GiaPresente = False
    	End If	
    	rs.movenext
    Loop
    
    ' altrimenti aggiungi un nuovo prodotto
    If GiaPresente = False Then
    	rs.addnew
    	rs("id_utente") = session("user_session")
    	rs("id_prodotto") = request.form("id_prodotto")
    	rs("nome_prodotto") = request.form("nome_prodotto")
    	rs("quantita") = request.form("quantita")
    	rs.update
    End If
    
    rs.Close
    Set rs = Nothing
    
    ' visuallizza il contenuto gia' aggiornato
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open "SELECT * FROM carrello WHERE id_utente="&session("user_session"), conn ,3,3
    response.write "user_session: "&session("user_session")&"
    "
    
    do while NOT rs.EOF
    	response.write "id:"&rs("id_prodotto")&"|qt:"&rs("quantita")&"|nome:"&rs("nome_prodotto")&"
    "
    	rs.movenext
    loop
    
    conn.Close
    set conn = Nothing
    %>

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova così:
    codice:
    If rs("id_prodotto") = CInt(request.form("id_prodotto")) Then
    Anche se potresti ottimizzare il codice facendo subito la query con l'id nella WHERE...

    Roby

  4. #4
    grande! funziona!!
    :riverenza:

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ok, ora ottimizza lo script...
    Ad occhio e croce lo puoi dimezzare!

    Roby

  6. #6
    cio' provato ma stavo incasinando tutto....
    fortuna che DW ha l'undo...

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Fortuna a chi non lo usa, fidati!

    Roby

  8. #8
    perche'?
    io non mi trovo tanto male...

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.