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]