webForumDet fria alternativet

lurigt, ett villkor, 2 räknare, det går inte ihop..

ASP

3 svar · 226 visningar · startad av tlee

Medlem sedan mars 2001290 inlägg
Frågan#1

Tjena..

problem med ett villkor som inte uppfylls trots att det skall göra det :)

Den första delen av koden är inte så intressant utan det är när vi börjar
komma in på följande rad det blir intressant:

If ( strVisible > "" ) Then

Lite kort vad jag försöker ådstakomma.

Jag loopar igenom en produkttabell, jag kollar ifall produkten är markerad
som aktiv, jag har 2 räknare som räknar dels antalet produkter och den
andra räknar bara ifall produkten är markerad som "icke aktiv" dvs ifall col_Visible = "".

Sen gör jag en jämförelse mellan de båda räknarna, har dom då samma värde
så uppdateras alla produkter med samma värden, produkterna ärver priser från produktgruppens inställningar.

Nedan följer koden.

<!--#INCLUDE FILE="inc/dbConn.inc"-->

<%

Dim struser, strGroup, strVisible, strPrice_1, strPrice_2, strPrice_3, strPrice_4, strPrice_5, Connect, DB_QUERY, intCounter_A, intCounter__B

intCounter_A = cInt(0)
intCounter_B = cInt(0)
strUser = Request.Kookies("User")("Name")
strGroup = Trim(Request.QueryString("Group"))

strVisible = Trim(Request.Form("txtActive"))

If ( strVisible = "on" ) Then _
	strVisible = "checked"

strPrice_1 = Request.Form("txtPrice1")

If ( strPrice_1 = "" & "" ) Then _
	strPrice_1 = 0

strPrice_2 = Request.Form("txtPrice2")

If ( strPrice_2 = "" & "" ) Then _
	strPrice_2 = 0

strPrice_3 = Request.Form("txtPrice3")

If ( strPrice_3 = "" & "" ) Then _
	strPrice_3 = 0

strPrice_4 = Request.Form("txtPrice4")

If ( strPrice_4 = "" & "" ) Then _
	strPrice_4 = 0

strPrice_5 = Request.Form("txtPrice5")

If ( strPrice_5 = "" & "" ) Then _
	strPrice_5 = 0

If ( Trim(strUser) > "" & "" ) Then

	
Set DB_QUERY= Connect.Execute("UPDATE [tbl_"& strUser &"_Groups] SET [col_Visible] = '"& strVisible &"', [col_Price_1] = "& strPrice_1 &", [col_Price_2] = "& strPrice_2 &", [col_Price_3] = "& strPrice_3 &", [col_Price_4] = "& strPrice_4 &", [col_Price_5] = "& strPrice_5 &" WHERE [col_Name] = '"& strGroup &"'")

If ( strVisible > "" ) Then

	'-- Kolla igenom produkt tabellen ifall det finns något i denna gruppen som är aktivt.
	
	Set DB_QUERY_CHECK = Connect.Execute("SELECT col_Visible, col_ArticleNr FROM tbl_" & strUser & "_Products WHERE col_Group='"& strGroup &"';")

	While Not DB_QUERY_CHECK.EOF
	
		intCounter_A = intCounter_A + 1 '-- Öka första räknaren
		
		strLen = Len(DB_QUERY_CHECK("col_Visible"))
		Response.Write(strLen) '-- Här skrivs inte ut något så jag antar att den är NULL
		
		Response.Write("Värdet i Visible cellen: " & DB_QUERY_CHECK("col_Visible") & "<br>") '-- Denna visar NULL
		
		If Trim(DB_QUERY_CHECK("col_Visible")) = "" & "" Then '-- Räknaren ökas inte trots att villkoret uppfylls, den är ju NULL!!!
			intCounter_B = intCounter_B + 1
		End If
		
		DB_QUERY_CHECK.MoveNext
	
	Wend
	
	'-- Är de båda räknarna lika så updatera alla produkter i denna produktgruppen.
	
	Response.Write("Counter 1: " & intCounter_A & "<br>") '-- Denna skriver ut 7
	Response.Write("Counter 2: " & intCounter_B & "<br>") '-- Denna skriver ut 0
	
	If ( intCounter_A = intCounter_B ) Then
	
		Set DB_QUERY_UPDATE = Connect.Execute("UPDATE tbl_" & strUser & "_Products SET col_Price_1="& strPrice_1&", col_Price_2=" & strPrice_2 &", col_Price_3=" & strPrice_3 & ", col_Price_4=" & strPrice_4 &", col_Price_5=" & strPrice_5 & ", col_Visible='checked' WHERE col_Group ='"& strGroup &"';") 
	
	End If

End If

'Response.Redirect("list_groups.asp")

Else
	Response.Write("Något är fel här du..")

End If

%>

Har vi någon guru som kan se något direkt fel här?
cellen col_Visible är av typ char(7) och skall lagra antingen NULL eller "checked"

chop chop...

/t

[Redigerat av tlee den 27 aug 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Om du vill kontrollera om något är null så

If isNull(DB_QUERY_CHECK("col_Visible")) Then

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 2001290 inlägg
#3

LarsG! du är en klippa!

If IsNull(DB_QUERY_CHECK("col_Visible")) OR Trim(DB_QUERY_CHECK("col_Visible")) = "" Then
			intCounter_B = intCounter_B + 1
		End If

Nu fungerar det kanon!

/t

------------------
the man with the golden bottle..

Medlem sedan jan. 2001510 inlägg
#4

We call him the "G"-man.

...Nä, jag bara hittar på. :e

/JANspeed

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