19 messaggi dal 08 luglio 2002
Ciao
Io ho una pagina asp che preleva dei datio da un database.
A fianco di ogni record che mi viene restituito dal database io ho posto una checbox perchè devo passare alla pagina successiva quali record(prodotti) l'utente ha selezionato.
Nella pagina successiva recupero i record che l'utente ha selezionato in questo modo:

---------------
Codice

<%

inizioTempo = Timer()
Set conn = Server.CreateObject("ADODB.Connection")
Set comm = Server.CreateObject("ADODB.Command")
Set Rs = Server.CreateObject("ADODB.Recordset")
conn.CommandTimeout = 40
conn.CursorLocation = 1
conn.ConnectionString = "dsn=tecno99dsn"
conn.Open
comm.ActiveConnection = conn
comm.CommandType = 1
comm.CommandText = "SELECT * FROM Prodotti"
Rs.Open comm,,1,1
do while not rs.EOF
prezzo=(rs("prezzo"))

nome=(rs("nome"))
nomepresente = Request.Form(nome)
if nome = nomepresente then
Response.Write "<tr><td>"
Response.Write (nome)
Response.Write "</td><td>"
Response.Write (prezzo)
Response.Write "</td>"
Response.Write "<td>colore</td>"
Response.Write "</tr>"
else
Response.Write null
end if
rs.MoveNext
loop
rs.Close


-------------------


Questo sistema però non credo sia molto corretto perchè se io voglio calcolare la somma dei prezzi non so come fare.......
Credo che dovrei fare una select dando come condizione che nome sia uguale a nomepresente ma come faccio? nome lo ricavo dal database!

Aiuto sono alla disperazione!!!!!

Dormo tranquillo perchè so che il mio peggior nemico veglia su di me....
---Il Buono---
11.886 messaggi dal 09 febbraio 2002
Contributi
Per ora puoi tenere questo sistema (però considera l'ipotesi di passare l'id del prodotto, piuttosto che il nome), se hai solo bisogno di conoscere l'importo totale non è difficile, ogni qualvolta aggiungi una riga alla tabella ricordati anche di incrementare una variabile, che alla fine conterrà il valore totale. Integra il tuo codice in questo modo:

[...]
totale = 0
do while not rs.EOF
prezzo=(rs("prezzo"))
nome=(rs("nome"))
nomepresente = Request.Form(nome)
if nome = nomepresente then
Response.Write "<tr><td>"
Response.Write (nome)
Response.Write "</td><td>"
Response.Write (prezzo)
Response.Write "</td>"
Response.Write "<td>colore</td>"
Response.Write "</tr>"
totale = totale + CDbl(prezzo)
else
Response.Write null
end if
rs.MoveNext
loop
[...]

Finito questo ciclo, puoi aggiungere un'ulteriore riga che contenga il totale, magari formattato a due decimali dopo la virgola:

Response.Write "<tr><td>"
Response.Write "Importo totale (euro):"
Response.Write "</td><td>"
Response.Write FormatNumber(totale,2)
Response.Write "</td>"
Response.Write "<td></td>"
Response.Write "</tr>"

Così può andare?

Enjoy learning and just keep making
19 messaggi dal 08 luglio 2002
BrightSoul ha scritto:
[totale = totale + CDbl(prezzo)
[...]

Grazie mille perfetto ma mi puoi spiegare quella riga?
Grazie!

Dormo tranquillo perchè so che il mio peggior nemico veglia su di me....
---Il Buono---
19 messaggi dal 08 luglio 2002
Ma che formato devo dare al campo prezzo del database?
Non mi fa il totale?

Dormo tranquillo perchè so che il mio peggior nemico veglia su di me....
---Il Buono---
19 messaggi dal 08 luglio 2002
Tutto aposto sbagliavo ancora il formato e il loop.
Funziona alla perfezione ma come fa a capire su quali record mi deve calcolare il prezzo totale?
Grazie

Dormo tranquillo perchè so che il mio peggior nemico veglia su di me....
---Il Buono---
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, questa riga:
totale = totale + CDbl(prezzo)
serve ad incrementare il totale. La funzione Cdbl() serve solo a trasformare la variabile prezzo in un numero decimale nel caso in cui era una stringa.
Ti sarà di certo capitato di vedere questa cosa:
a = "5"
b = "7"
la somma a+b fa "57" perchè le due variabili sono stringhe. Usando invece la funzione di sopra, in questo modo:
Cdbl(a) + Cdbl(7)
si ha il risultato corretto, e cioè 12.

A parte questo bisogna notare che la riga che incrementa il totale si trova dentro il blocco if che hai messo tu:

if nome = nomepresente then
[...]
end if

Per cui il totale aumenta solo se nome=nomepresente.
Ciaoo ^__^

Enjoy learning and just keep making
19 messaggi dal 08 luglio 2002
Grazie mi sono documentato e ho capito.
E poi hai ragione la condizione l'avevo data io ma ero già un pò fuso.....
Se ora io volessi moltiplicare il risultato totale per la quantità di confezioni basta che moltiplico la variabile totale per la variabile numero(supponendo che numero=request.form ("numero")) ?
Ma se poi invio il form con action sulla stessa pagina lui non si ricorda più ne il totale ne i pezzi che ho confezionato............
Puo andare se glieli passo con dei campi hidden?
Grazie

Dormo tranquillo perchè so che il mio peggior nemico veglia su di me....
---Il Buono---

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.