Trådstart 11 juni 2001 09:03 #1 Jag har fått lite hjälp med en kod här av LarsG, men behöver lite hjälp till
mySQL = "SELECT * FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " ORDER BY hyrUtDatum ASC"
Set objRS = objConn.Execute(mySQL)
Do While Not objRS.EOF
if not (datediff("d",sStartDatum,cdate(objRs("hyrInDatum"))) < 0 or datediff("d",sSlutDatum,cdate(objRs("hyrUtDatum"))) > 0) then
'sätt OK
else
'sätt NOT End If
objRS.MoveNext
Loop
Och sedan ifall det är typ 10 poster så skall jag kunna kolla ifall ingen blev NOT
If ingen är NOT Then
'lägg till i DB
else
'skriv ut det funkar ej
end if
Fattar någon vad jag är ute efter
@nders Medlem sedan juni 2000 32 967 inlägg bolIsOk = true
mySQL = "SELECT * FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " ORDER BY hyrUtDatum ASC"
Set objRS = objConn.Execute(mySQL)
Do While Not objRS.EOF
if (datediff("d",sStartDatum,cdate(objRs("hyrInDatum"))) < 0 or datediff("d",sSlutDatum,cdate(objRs("hyrUtDatum"))) > 0) then bolIsOk = false
objRS.MoveNext
Loop
if bolIsOk then
'helt funkis!
else
'trasigt!!!
end if
OK, den funkar delvis...
Men ifall jag har 10 st bokningar på en speciell maskin och de 9 första krockar med den "nya" men den sista "går igenom" så får jag fortfarande att det är OK att boka maskinen
Jag måste alltså kolla så att den inte krockar med flera bokningar.
@nders Medlem sedan juni 2000 32 967 inlägg du ska aldrig sätta bolIsOk till true, förutom som initialvärde.
fungerar inte min kod?
kan inte se hur bolIsOk kan vara true om den någon gång är satt till false...
OK, så här är koden nu:
Dim sMaskin, sPerson, sForetag, sStartDatum, sSlutDatum, sCheck, bolIsOk
bolIsOk = true
sMaskin = Request.Form("maskinID")
sStartDatum = Request.Form("hyrUtDatum1") & "-" & Request.Form("hyrUtDatum2") & "-" & Request.Form("hyrUtDatum3")
sStartDatum = CDate(sStartDatum)
sSlutDatum = Request.Form("hyrInDatum1") & "-" & Request.Form("hyrInDatum2") & "-" & Request.Form("hyrInDatum3")
sSlutDatum = CDate(sSlutDatum)
sPerson = Request.Form("hyrPerson")
sForetag = Request.Form("hyrForetag")
mySQL = "SELECT * FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " ORDER BY hyrUtDatum ASC"
Set objRS = objConn.Execute(mySQL)
Do While Not objRS.EOF
if (datediff("d",sStartDatum,cdate(objRs("hyrInDatum"))) < 0 or datediff("d",sSlutDatum,cdate(objRs("hyrUtDatum"))) > 0) then bolIsOk = false
objRS.MoveNext
Loop
if bolIsOk = true then
Response.Write "OK"
else
Response.Write "Dubbelbokning"
end if
end if
Det måste isåfall vara något fel på IF-satsen
r: Fel kopierat
Vad jag än för så blir det "Dubbelbokning"
OK, här är hela koden för sidan:
<% Option Explicit %>
<!-- #include virtual = "/includes/db_open.asp" -->
<html>
<head>
<title>TVÅ GRÄVARE AB | Managementsystem</title>
<style>
<!--
.datum {font-family: arial, verdana; font-size: 9px; color: #cf2428;}
.text {font-family: verdana; font-size: 9px; color: #000000;}
.textTime {font-family: verdana; font-size: 9px; color: #000000; font-style: italic;}
.red {font-family: verdana; font-size: 9px; color: #cf2428; font-weight: bold;}
.gray {font-family: verdana; font-size: 9px; color: #666666; font-weight : bold;}
.black {font-family: verdana; font-size: 9px; color: #000000; font-weight : bold;}
.white {font-family: verdana; font-size: 9px; color: #ffffff; font-weight : bold;}
a.blue {font-family: verdana; font-size: 9px; color: #183873; font-weight : bold;}
-->
</style>
</head>
<body background="../images/bg_pop.gif" bgcolor="#efefef" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<%
If Request.QueryString("addBook") = "" Then
Dim sMaskinerUrDb
sMaskinerUrDb = "<select name=""maskinID"" style=""width: 150px"" class=""text""><option selected>- Välj en maskin-"
mySQL = "SELECT * FROM maskinTable ORDER by maskinModell ASC"
Set objRS = objConn.Execute(mySQL)
Do While Not objRS.EOF
sMaskinerUrDb = sMaskinerUrDb & "<option value=""" & objRS("maskinID") & """>" & objRS("maskinModell") & " (" & objRS("maskinNummer") & ")"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
Set mySQL = Nothing
%>
<table width="280" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td height="45" colspan="2"><img src="../images/1px.gif" width="1" height="45"></td>
</tr>
<tr>
<td class="black" colspan="2">Boka en maskin</td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<form method="post" action="bookMachine.asp?addBook=yes">
<tr>
<td class="black" width="100">Vilken maskin:</td><td class="text" align="left" width="220"><% = sMaskinerUrDb %></td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td class="black" width="100">Till vem:</td><td class="text" align="left" width="220"><input type="text" name="hyrPerson" style="width: 150px" class="text"></td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td class="black" width="100">På företaget:</td><td class="text" align="left" width="220"><input type="text" name="hyrForetag" style="width: 150px" class="text"></td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td class="black" width="100">Från vilket datum:</td><td class="text" align="left" width="220"><input type="text" class="text" style="width: 40px;" maxlength="4" name="hyrUtDatum1"> - <input type="text" class="text" style="width: 25px;" maxlength="2" name="hyrUtDatum2"> - <input type="text" class="text" style="width: 25px;" maxlength="2" name="hyrUtDatum3"> (xxxx-xx-xx)</td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td class="black" width="100">Prel. slutdatum</td><td class="text" align="left" width="220"><input type="text" class="text" style="width: 40px;" maxlength="4" name="hyrInDatum1"> - <input type="text" class="text" style="width: 25px;" maxlength="2" name="hyrInDatum2"> - <input type="text" class="text" style="width: 25px;" maxlength="2" name="hyrInDatum3"> (xxxx-xx-xx)</td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td width="100"></td><td class="text" align="left" width="220">Glöm ej slutdatumet!</td>
</tr>
<tr>
<td height="10" colspan="2"><img src="../images/1px.gif" width="1" height="10"></td>
</tr>
<tr>
<td width="100" class="black">Läs igenom innan!</td><td><input type="submit" value="Boka" class="text"> <input type="reset" value="Rensa" class="text"></td>
</tr>
</form>
</table>
<%
ElseIf Request.QueryString("addBook") = "yes" Then
Dim sMaskin, sPerson, sForetag, sStartDatum, sSlutDatum, sCheck, bolIsOk
bolIsOk = true
sMaskin = Request.Form("maskinID")
sStartDatum = Request.Form("hyrUtDatum1") & "-" & Request.Form("hyrUtDatum2") & "-" & Request.Form("hyrUtDatum3")
sStartDatum = CDate(sStartDatum)
sSlutDatum = Request.Form("hyrInDatum1") & "-" & Request.Form("hyrInDatum2") & "-" & Request.Form("hyrInDatum3")
sSlutDatum = CDate(sSlutDatum)
sPerson = Request.Form("hyrPerson")
sForetag = Request.Form("hyrForetag")
mySQL = "SELECT * FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " ORDER BY hyrUtDatum ASC"
Set objRS = objConn.Execute(mySQL)
Do While Not objRS.EOF
if (datediff("d",sStartDatum,cdate(objRs("hyrInDatum"))) < 0 or datediff("d",sSlutDatum,cdate(objRs("hyrUtDatum"))) > 0) then bolIsOk = false
objRS.MoveNext
Loop
if bolIsOk = true then
Response.Write "<br><br><br><br><br>OK"
else
Response.Write "<br><br><br><br><br>Dubbelbokning"
end if
end if
%>
</body>
</html>
Kolla in den på live här , klicka på boka maskin till vänster.
@nders Medlem sedan juni 2000 32 967 inlägg if (datediff("d",sStartDatum,cdate(objRs("hyrInDatum"))) < 0 or datediff("d",sSlutDatum,cdate(objRs("hyrUtDatum"))) > 0) then bolIsOk = false
stämmer den if-satsen?
borde inte kontrollen vara beroende på både hyrindatum och hyrutdatum?
kontrollera den if-satsen...
Ligger något i det du säger @nders
Skall fixa det, återkommer ifall det krånglar mer
Jag får det bara inte att funka
Nu har jag:
If (sStartDatum => objRS("hyrUtDatum") AND sStartDatum <= objRS("hyrInDatum")) AND (sSlutDatum <= objRS("hyrUtDatum") AND sSlutDatum => objRS("hyrInDatum")) Then bolIsOk = false
Men det är fel, men jag fattar inte hur jag skall skriva för att få det riktigt
Någon, snälla
@nders Medlem sedan juni 2000 32 967 inlägg skriv if-satsen med rena ord först, så blir det lättare att fixa en fungerande if-sats.
nu är jag för trött för att orka tänka hur du vill att den ska fungera, men jag tycker att if-satsen ser konstig ut!
Det ser jättekonstig ut, det är typ revision 234
Jag har också snart slut på papper
Jag testar vidare, men ifall någon vet så tveka inte
OK, den första satsen (som kolla startdatumet) skall nog vara så här iallafall:
If (sStartDatum => objRS("hyrUtDatum") AND sStartDatum =< objRS("hyrInDatum")) Then bolIsOk = false
Men den andra klarar jag inte riktigt av
Finns det ingen annan än @nders som är lite mer logisk än mig