Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Aggiornamento DB con LOOP e variabili

    Scusa ancora per le richieste ma avrei bisogno del vostro aiuto.

    Dovrei aggiornare delle celle del DB con un calcolo per lo sconto ma facendo un loop. Vi posto il codice che è molto più chiaro di una mia spiegazione:

    codice:
    '--Leggo il contenuto del carrello
      Dim SQLCarrello, RSCarrello
      SQLCarrello = " SELECT * FROM Carrello WHERE IDSessione = '"& SessionID &"' AND ID_Scategoria = '"& id_scategoria &"' "
      Set RSCarrello = Conn.Execute(SQLCarrello)
      
      Do While Not RSCarrello.Eof
      Cprezzo = RSCarrello("Cprezzo")
    
    '--Calcolo lo sconto
     Prezzo_Scontato = (Cprezzo - ArrotondamentoPrezzo((Cprezzo)/100) * percentuale)
    
    '--Aggiorno il prezzo del prodotto nel database
      SQLAggiorno = " UPDATE Carrello SET Cprezzo = '"& Prezzo_Scontato &"' WHERE IDSessione = '"& SessionID &"' AND ID_Scategoria = '"& id_scategoria &"' "  
      Set RSAggiorno = Conn.Execute(SQLAggiorno)
    
      RSCarrello.MoveNext
      Loop
    
    '--Cancello il codice promo
      SQLCanc = "DELETE FROM promo WHERE valore = '"& campoPromo &"'"
      set rsCanc = Conn.Execute (SqlCanc)
    
    response.redirect "carrello.asp"
      RSCarrello.Close
    Il Problema è che se esiste un solo prodotto per quella session e per quella id_scategoria tutto funziona bene ma se ci sono 2 prodotti che corrispondono a quelle condizioni il codice in pratica mi prende solo il primo prezzo, mi calcola lo sconto e poi applica lo stesso prezzo scontato ad entrambi i prodotti invece questi sono diversi.
    Cosa sbaglio nel loop?

    Grazie mille in anticipo

  2. #2
    perché con quella update tu aggiorni TUTTI i record, quindi tutti saranno come l'ultimo. devi estrarre l'id della riga e fare

    SQLAggiorno = " UPDATE Carrello SET Cprezzo = '"& Prezzo_Scontato &"' WHERE ID = " & Id

    tra l'altro Prezzo_Scontato NON dovrebbe andare tra apici

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    perfetto, grazie mille

  4. #4

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.