If else sætning med loop - kan man det?
HejJeg sidder og bøvler med noget beregning af fragt i en netbutik.
Til at starte med havde jeg lavet en if else sætning på denne måde:
if longVaegt < 800 then
intShipping1 = 42.50
elseIf longVaegt < 4800 then
intShipping1 = 46.50
elseIf longVaegt < 9800 then
intShipping1 = 57.50
elseIf longVaegt < 14800 then
intShipping1 = 84.00
elseIf longVaegt < 19800 then
intShipping1 = 92.00
end If
Men nu vil jeg gerne have det lavet sådan at priserne og vægtintervallerne kommer fra min database. I min database har jeg en tabel der hedder fragtPriser. I tabellen findes kolonnerne fragtId, fragtPris og maxVaegt
Jeg har prøvet at lave min if else sætning på denne måde, men det giver en fejl.
<%
' SQL forespørgsel
strSQL = "SELECT * FROM fragtPriser ORDER BY fragtId"
' Udfør strSQL (rs5 kommer til at indeholde dataen)
Set rs5 = Conn.Execute(strSQL)
%>
<%
intTimes = 0
if longVaegt > 19800 then
intTimes = int(longVaegt / 19800)
longVaegt = (longVaegt - (intTimes * 19800))
else intTimes = 0
end if
Do While Not rs5.EOF
if longVaegt < rs5("maxVaegt") then
intShipping1 = rs5("fragtPris")
else
' Gå til næste record i rs
rs5.MoveNext
' Gå i loop indtil rs ikke indeholder flere records (= EOF)
Loop
END IF
Hordan kan jeg løse mit problem? Og kan det i det hele taget lade sig gøre at man henter betingelserne ud via et loop?
Her får I lige hele koden til min side
::::KODE::::
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConString
if cstr(Session("orderID")) = "" then
%>
<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
margin-top: 0px;
margin-left: 4px;
}
-->
</style>
</head>
<body>
<%
Response.Write "<p><b>"
Response.Write "Der er ingen varer i din indkøbsvogn. "
Response.Write "Hvis du tidligere har lagt varer i indkøbsvognen, "
Response.Write "er der måske sket en timeout - beklager fejlen.<br><br>"
Response.Write "<a href='forside_butik.htm' target='tekst'><img src='grafik/fortsat_shop.gif' alt='Fortsæt med at shoppe' border='0' name='fortsat' ></a> "
Response.Write "<b></p>"
%>
</body>
</html>
<%
else
intOrderID = cstr(Session("orderID"))
set rsProd = Server.CreateObject("ADODB.Recordset")
rsProd.Open "SELECT * FROM ordrelinie " _
& "WHERE orderID="& intOrderID, _
Conn, adOpenDynamic, adLockPessimistic, adCmdText
while not rsProd.EOF
element = "quant" & rsProd("vareid")
intQuant = Request.form(element)
if intQuant <> "" and isNumeric(intQuant) then
if intQuant = 0 then
rsProd.Delete
else
rsProd("antal") = intQuant
end if
end if
rsProd.Update
rsProd.MoveNext
wend
if Request.form("updateorder.x") <> "" and Request.form("updateorder.y") <> "" then
rsProd.Close
set rsProd = Nothing
Conn.Close
set Conn = Nothing
Response.Redirect "vis_vogn.asp"
else
if rsProd.BOF and rsProd.EOF then
rsProd.Close
set rsProd = Nothing
Conn.Close
set Conn = Nothing
Session("orderID") = ""
Response.Redirect "checkout1.asp"
else
%>
<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
margin-top: 0px;
margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br><table width="670" border="0" cellspacing="0"><!--indholdstabel start-->
<tr bgcolor="#545DB9">
<td height="18" ><span class="style1">Kassen - Trin 1 af 3</span></td>
</tr>
<tr>
<td align="left"><p>Din ordre:<br>
<br>
</p></td>
</tr>
<tr>
<td>Er indholdet ikke korrekt? Jeg vil ændre indholdet af ordren - <a href="vis_vogn.asp">Klik her...</a></td>
</tr>
<tr>
<td align="center">
</td>
</tr>
<tr>
<td> <form action="checkout2.asp" method="post" name="form1">
<input type="hidden" name="intOrderID" value="<%=intOrderID%>">
<table border="1" cellpadding="1" cellspacing="1" width="660"><!--varetabel-->
<tr bgcolor="#F2F2FA">
<td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Antal</strong></font></td>
<td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare ID</strong></font></td>
<td width="44%" align="left" valign="middle"><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare</strong></font></td>
<td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris pr stk</strong></font></td>
<td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris i alt</strong></font></td>
</tr>
<%
set rsProdInfo = Server.CreateObject("ADODB.Recordset")
rsProdInfo.Open "vare", Conn, adOpenStatic, adLockOptimistic, adCmdTable
intTotal = 0
rsProd.MoveFirst
while not rsProd.EOF
rsProdInfo.MoveFirst
rsProdInfo.Find "vareid = " & rsProd("vareid")
intProdID = rsProd("vareid")
strProdName = rsProdInfo("titel")
intPrice = formatNumber(rsProdInfo("pris"), 2)
intQuant = rsProd("antal")
intProdVaegt = rsProdInfo("vaegt")
prodVaegtAll = (intProdVaegt * intQuant)
longVaegt = longVaegt + prodVaegtAll
intExtPrice = formatNumber((intPrice * intQuant), 2)
intTotal = intTotal + intExtPrice
%>
<tr>
<td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intQuant %></font></td>
<td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intProdID %></font></td>
<td width="44%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= strProdName %></font></td>
<td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intPrice %></font></td>
<td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intExtPrice %></font></td>
</tr>
<input type="hidden" value="<%=intProdVaegt %>" name="intProdVaegt">
<input type="hidden" name="strOrderItem" value="<%= intProdID %>,<%= intQuant %>">
<input type="hidden" value="<%=longVaegt %>" name="longVaegt">
<%
rsProd.MoveNext
wend
%>
<%
' SQL forespørgsel
strSQL = "SELECT * FROM fragtPriser ORDER BY fragtId"
' Udfør strSQL (rs5 kommer til at indeholde dataen)
Set rs5 = Conn.Execute(strSQL)
%>
<%
intTimes = 0
if longVaegt > 19800 then
intTimes = int(longVaegt / 19800)
longVaegt = (longVaegt - (intTimes * 19800))
else intTimes = 0
end if
Do While Not rs5.EOF
if longVaegt < rs5("maxVaegt") then
intShipping1 = rs5("fragtPris")
else
' Gå til næste record i rs
rs5.MoveNext
' Gå i loop indtil rs ikke indeholder flere records (= EOF)
Loop
END IF
'If longVaegt < 4800 then
'intShipping1 = 46.50
'elseIf longVaegt < 9800 then
'intShipping1 = 57.50
'elseIf longVaegt < 14800 then
'intShipping1 = 84.00
'elseIf longVaegt < 19800 then
'intShipping1 = 92.00
'end If
%>
<%
'linie til at tjekke hvad longVaegt er
'response.write longVaegt
%>
<%
intShipping = ((intTimes * 92.00) + intShipping1)
%>
<%
'display total for products in cart
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Subtotal:</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber(intTotal, 2) %>
</font></td>
</tr>
<%
'add and display amount charged for sales tax:
'in this case it's 25% of total for products in cart
%>
<%
'linie til at tjekke hvad times er
'response.write intTimes
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Heraf moms (25%):</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber((intTotal * .20), 2) %>
<input type="hidden" name="intTax" value="<%= formatNumber((intTotal * .20), 2) %>">
</font></td>
</tr>
<%
'add and display amount charged for shipping:
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Forsendelse:</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber((intShipping1 + (intTimes * 92.00)), 2) %>
<input type="hidden" name="intShipping" value="<%= formatNumber((intShipping1 + (intTimes * 92.00)), 2) %>">
</font></td>
</tr>
<%
'display Grand Total
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2"><b>Kr. Total:</b></font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2"><b>
<%= formatNumber((intTotal + intShipping), 2) %>
<input type="hidden" name="intTotal" value="<%= formatNumber((intTotal + intShipping), 2) %>">
</b></font></td>
</tr>
</table>
</td></tr>
<tr><td align="right"><input type="image" src="grafik/gaa_kassen.gif" name="kassen" value="Gå til kassen"></td></tr>
</form></table>
<%
'linie til at tjekke om fragten er regnet rigtigt sammen
'response.Write intShipping
%>
</body>
</html>
<%
rsProd.Close
set rsProd = Nothing
rsProdInfo.Close
set rsProdInfo = Nothing
'end if
'end if
'end if
Conn.Close
set Conn = Nothing
%>
::::SLUT::::
/Annette
