webForumDet fria alternativet

omvandla till tal?

ASP

6 svar · 443 visningar · startad av fakenick!

Medlem sedan juli 2002202 inlägg
Frågan#1

hej!

jag håller på att göra ett bokningssystem!

och nu jämför jag de värden man valt för bokning med
de som redan finns i databasen..

och för att det skall gå kan det säkert vara bra att
de 2 jag jämför med är av samma värde..

jag får in request.form("time1") och jämför med databasen
rs("time1")... kort och koncist.. request.form är av typen
string, eller hur? och i databasen har jag satt rs("time1")
till tal..

någon som vet hur man konverterar om request.form till tal?

eller har någon annan problemlösning?

mvh john norrby!

Medlem sedan juni 200032 967 inlägg
#2

Cint() och Clng() konverterar till heltal, Cdbl() och Csng() till decimaltal. Vilken funktion du ska välja beror på talens storlek, men välj hellre någon av de "större" (Clng / Cdbl) om du är osäker.

Medlem sedan juli 2002202 inlägg
#3

okej!

bokningssystemet ser ut som följande:

man väljer i 2 select (time1 och time2)..

jag har skrivit ut så att värdet är 700 för 7:00 etc..

sen har jag denna if-sats (som jag lade till clng() nyligen:

<% if request.form("date") = rs("date") then

	if clng(request.form("time1")) = clng(rs("time1")) then
		response.write "<b>"& request.form("time1") &"="& rs("time1") &"</b><br>"
		add = false
	elseif clng(request.form("time1")) > clng(rs("time1")) and clng(request.form("time1")) < clng(rs("time2")) then
		response.write "<b>"& request.form("time1") &">"& rs("time1") &" and "& request.form("time1") &"<"& rs("time2") &"</b><br>"
		add = false
	elseif clng(request.form("time2")) > clng(rs("time1")) and clng(request.form("time2")) < clng(rs("time2")) then
		response.write "<b>"& request.form("time2") &">"& rs("time1") &" and "& request.form("time2") &"<"& rs("time2") &"</b><br>"
		add = false
	elseif clng(request.form("time2")) > clng(request.form("time1")) then
		response.write "<b>"& request.form("time1") &">"& request.form("time2") &"</b><br>"
		add = false
	end if

end if %>

men detta vill inte riktigt fungera..
jag förstod det som så att man skulle göra som så häröver..

eller har jag missförstått?

testade också med cdbl.. men fick samma resultat..
det är ju inte helt säkert att koden fungerar heller.. :/

hjälp needed.. :o

mvh john norrby!

Medlem sedan juni 200032 967 inlägg
#4

På vilket sätt fungerar det inte då?
En sak som jag ser direkt är att du inte konverterar till datum i den yttersta IF-satsen, så antagligen kommer du inte in i den if-satsen överhuvudtaget. Man skall alltid se till att man inte jämför äpplen med bananer, eller annan frukt som inte har på våra breddgrader att göra, exempelvis sharon.

mvh

Medlem sedan juli 2002202 inlägg
#5

;)

jag kommer in i if-satsen.. för jag får de felmeddelandena som står där..

innehållet i date ser ut så här: 2005-12-14.. men det kan som du säger
vara förnuftigt att jämföra med samma där också! ;)

det som inte fungerar är det att den inte verkar
jämföra värdena "rätt".. alltså att det fortfarande
inte blivit tal som den jämför med..

när jag t.ex. ska boka en tid som är samma dag som någon
annan bokning och bokar en tid efter eller före den bokade tid
som finns i databasen får jag då ett felmeddelande om att den
tiden redan är bokad..

detta tror jag beror på att typen fortfarande är av typen string
eftersom när man bokar ett längre intervall.. 700-1400, fungerar
det.. att den räknar bokstäver då? på något sätt...

mvh john norrby..

Medlem sedan juni 200032 967 inlägg
#6

Då är det nog dags att du skriver ut alla värden så du vet vad som jämförs.

Men är det inte vettigare att ställa villkoren direkt i SQL-frågan?

Medlem sedan juli 2002202 inlägg
#7

okej...
men hur ska man skriva i sql-frågan då?

så här vill jag att den skall fungera:

jag har ett fält som heter date... ifall det "date man
lägger till inte redan finns med i databasen så behöver
man inte kolla efter eventuella dubbelbokningar..

och sen.. ifall date finns.. så ska den jämföra time1 och
time2 med de värden i de fält som finns i databasen..

time1 = 901 (9:00) och time2 = 999 (10:00)

:P

mvh john norrby...

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)