Buona settimana a tutti,

sto cercando di finire il mio listino prezzi composto in tre fasi:
-passo1.htm inserisco 4 variabili (dal, al, tipologia, stagionalità)
-passo2.asp mi si visualizzano i dati in funzione della tipologia indicata (bilocale, trilocale, ecc) sono riuscito a far leggere per ora solo la prima colonna "intera" MA NON RIESCO a far leggere la colonna che determino nel passo1.htm campo "stagionalità".
-passo3.asp viene fuori il totale.

Infatti il file passo2.asp, dal db a cui lo connetto, dovrebbe (1)recuperare la tabella (ovvero le tipologie) e già lo fa + (2)leggere la colonna (sono quattro + o - e rappresentano le stagionalità: p es: alta stagione, sconti, ecc).

Grazie per il vostro aiuto.

================ecco il codice=========================

<%
dim dal_var2, al_var2, tipologia_var2, stag_var2

'prima settimana
dal_var2 = Request.Form("dal_var")
'seconda settimana
al_var2 = Request.Form("al_var")

'tipologia
tipologia_var2 = Request.Form("tipologia_var")

'stagionalita
stag_var2 = Request.Form("stag_var")


'response.write(dal_var2 & "<br>")
'response.write(al_var2)


Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("baia.mdb")

Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")

dim sql_select
'sql_select = "select * FROM "&tipologia_var2
sql_select = "select * from " & tipologia_var2 & " where dal >= #" & dal_var2 & "# and al <= #" & al_var2 & "#"

response.write(dal_var2 & "<br>")
response.write(al_var2 & "<br>")
response.write(tipologia_var2 & "<br>")
response.write(stag_var2)

'Dim dal, al, intera

rs.Open sql_select, Conn


%>
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>


<%
Dim tot
tot=0
Do while NOT RS.EOF
sett1 = rs("dal")
sett2 = rs("al")
locazione =rs("intera") 'locazione deve essere uguale alla variabile passata dal passo1
tot=tot+locazione
id = rs("Id")
%>

<br>
dal : <%=sett1%><br>
al : <%=sett2%><br>
locazione : <%=locazione%><br>
Id : <a href="as.asp?id=<%=Id%>"><%=Id%></a><br>
<hr>
<p>
<%
RS.MoveNext
Loop
%>

=================================================================

trovate l'esempio su www.viagginelsalento.it/utilita/8/passo1.htm
come notate, al mutare della tipologia, il prezzo indicato è sempre lo stesso perchè non riesce a leggere le altre colonne ma solo la colonna "intera"

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
5.360 messaggi dal 09 febbraio 2002
Contributi
ciao,
hai provato ad aggiungere un criterio di ricerca specifico per la stagionalità alla clausola WHERE della tua query SQL?

cioè:
sql_select = "select * from " & tipologia_var2 & " where dal >= #" & dal_var2 & "# and al <= #" & al_var2 & "# AND stagionalita='" & stag_var2 & "'"

a parte questo... finita la fase di test, cerca di rendere il tuo codice un po' più robusto. Compilando il passo1.htm ho notato che tralasciando alcuni campi o inserendo valori sbagliati la query va in errore e questo non dovrebbe accadere. Per esempio, se dal_var2 non contiene una data la tua query non funziona. Allora, devi prima fare un controllo:

if not isDate(dal_var2) then
dal_var2 = "01/01/2000"
end if

A proposito di date, nelle tue queries dovresti sempre usare il formato internazionale yyyy/MM/gg dato che con Access ci sono problemi di interpretazione. Per questo motivo, se dal_var2 contiene la stringa "07/05/2006", che verrebbe interpretato come 5 luglio da Access, devi scambiare l'ordine dei numeri.

if not isDate(dal_var2) then
dal_var2 = "2000/01/01"
else
dal_var2 = Cdate(dal_var2)
dal_var2 = Year(dal_var2) & "/" & Month(dal_var2) & "/" & Day(dal_var2)
end if

ciao

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!
ciao brightsoul,

mai vista tanta solerzia e delicatezza nel rispondere ad un quesito. ti ringrazio.
c'è un punto che approfondisco ora:
- la stagionalità non è una colonna di un db
- infatti, nel mio db ci sono tante colonne quante le stagionalità, quindi, il passo2.asp, incrociando con i campi "dal" "al", dovrebbe leggere il prezzo dalla colonna che gli passiamo al passo1.htm.
- per questa ragione io pensavo di agire non sulla sql ma più in basso (p es qui: sulla voce locazione. infatti "intera" è solo una delle colonne del db

<%
Dim tot
tot=0
Do while NOT RS.EOF
sett1 = rs("dal")
sett2 = rs("al")
locazione =rs("intera") 'locazione deve essere uguale alla variabile passata dal passo1
tot=tot+locazione
id = rs("Id")
%>

puoi vedere il db su www.viagginelsalento.it/8/baia.zip

a presto, daniele.

ps= a proposito di date, dal passo effettivamente se metto date tipo 03-06/24-06 mi si restituiscono tutte le settimane e non solo quelle interessate. pensi che sia legato al problema che mi hai esposto nella tua risposta?

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
5.360 messaggi dal 09 febbraio 2002
Contributi

puoi vedere il db su www.viagginelsalento.it/8/baia.zip

non riesco a scaricare il database, comunque più o meno credo di aver capito...


- per questa ragione io pensavo di agire non sulla sql ma più in basso (p es qui: sulla voce locazione. infatti "intera" è solo una delle colonne del db

si, puoi fare come suggerisci tu.

'recuperi la colonna giusta utilizzando la variabile sta_var2
locazione =rs(stag_var2)


ps= a proposito di date, dal passo effettivamente se metto date tipo 03-06/24-06 mi si restituiscono tutte le settimane e non solo quelle interessate. pensi che sia legato al problema che mi hai esposto nella tua risposta?

proprio così. Access lo interpreta come "dal 6 marzo al 24 giugno".
Quando gli passi una stringa del genere #03/06/2006#, Access tenta di convertirla usando per primo il formato anglosassone MM/dd/yyyy e ci riesce. Quando invece gli passi la stringa #24/06/2006#, la conversione secondo il formato anglosassone fallisce perchè non esiste il mese 24, e a quel punto Access tenta di nuovo di fare la conversione usando l'altro formato dd/MM/yyyy e ci riesce.
A scanso di equivoci ti conviene sempre utilizzare il formato internazionale yyyy/MM/dd

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!
TROPPO CHIARO!!! grazie: daniele.

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
ancora un ossequio,


mi sono reso conto che sarebbe meglio inserire una funzioncina per evitare di mettere manualmente la stagionalità, credo che qualcosa non funzioni correttamente. voglio dire alla funzione, se la data inserita "dal" è uguale a 2006/05/13 e "al" uguale a 2006/05/19 o "dal" uguale a 2006/05/13 e "al" uguale a #2006/03/02# allora leggi la colonna "vl" altrimenti leggi la colonna "intera".

che faccio? grazie, daniele.


<%
Dim tot
tot=0
Do while NOT RS.EOF
sett1 = rs("dal")
sett2 = rs("al")

if sett1 = #2006/05/13# and sett2 = #2006/05/19# then
locazione = rs("intera")

elseif sett1 = #2006/05/13# and sett2 = #2006/05/26# then
locazione = rs("vl")
elseif sett1 = #2006/05/13# and sett2 = #2006/03/02# then
locazione = rs("vl")
end if

tot=tot+locazione
id = rs("Id")
%>

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)
5.360 messaggi dal 09 febbraio 2002
Contributi
prova così, facendo uso di una funzione personalizzata.

<%

Function uguali(data1, data2)
risultato = false

if isDate(data1) AND isDate(data2) then
data1 = FormatDateTime(CDate(data1), vbShortDate)
data2 = FormatDateTime(CDate(data2), vbShortDate)
if data1=data2 then
risultato = true
end if
end if
uguali = risultato
End Function

Dim tot
tot=0
Do while NOT RS.EOF
sett1 = CStr(rs("dal"))
sett2 = CStr(rs("al"))

if uguali(sett1, "2006/05/13") AND uguali(sett2, "2006/05/19") then
locazione = rs("intera")
elseif uguali(sett1, "2006/05/13") AND uguali(sett2, "2006/05/26") then
locazione = rs("vl")
elseif uguali(sett1, "2006/05/13") AND uguali(sett2, "2006/03/02") then
locazione = rs("vl")
end if

tot=tot+locazione
id = rs("Id")
%>

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!
CASPITA!!!

no, mi legge sempre la colonna "intera" come puoi vedere da http://www.viagginelsalento.it/utilita/8/passo1-if.htm


il db è su www.viagginelsalento.it/utilita/8/baia.zip

a presto, daniele.

danielix05 (http://www.viagginelsalento.it - informazioni e promozione turistica del Salento)

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.