Frågan 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 :q
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
@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
------------------
<A HREF="http://cartman.nu " TARGET=_blank>
can i borrow your goat?
</A>
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.
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
@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...
------------------
<A HREF="http://cartman.nu " TARGET=_blank>
can i borrow your goat?
</A>
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 :q
r: Fel kopierat :(
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
[Redigerat av Rossifumi den 11 jun 2001]
Vad jag än för så blir det "Dubbelbokning" :(
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
[Redigerat av Rossifumi den 11 jun 2001]
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.
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
@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...
------------------
<A HREF="http://cartman.nu " TARGET=_blank>
can i borrow your goat?
</A>
Ligger något i det du säger @nders ;)
Skall fixa det, återkommer ifall det krånglar mer :)
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
Jag får det bara inte att funka x(
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 :q
Någon, snälla ;)
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
@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! :)
------------------
<A HREF="http://cartman.nu " TARGET=_blank>
can i borrow your goat?
</A>
Det ser jättekonstig ut, det är typ revision 234 :e
Jag har också snart slut på papper ;)
Jag testar vidare, men ifall någon vet så tveka inte :)
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda
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 ;) :e :q
------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi , Nastro Azurro Honda