webForumDet fria alternativet

if then else

ASPur ASP

9 svar · 234 visningar · startad av nedde

Medlem sedan nov. 2003187 inlägg
Frågan#1

Vill att den ska hämta siffran från databasen och sen beroende på det ska den sista columnen ändra bakgrundfärg men jag
får inte till det. Den visar bara den första fägen på alla. Vad är det jag har missat? Någon som kan hjälpa mig..

Det är if satsen på color jag dolar med.

<%
Set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * FROM users ORDER BY AfUsername"
conn.open dsn
rs.Open sql, conn
do until rs.EOF

if activiation = 0 then
color = "#ffcc00"
elseif activation = 1 then
color = "#ffffff"
else
color = "33cc00"
end if
%>
<tr>
<td><div align="left"><a href="<%=rs("AfUsername")%>"> </a><a href="<%=rs("AfUsername")%>" target="_blank"><%=rs("AfUsername")%></a></div></td>
<td align=center><div align="left"><%=rs("state")%></div></td>
<td align=center><div align="left"></div> <div align="left"><%=rs("date")%></div></td>
<td bgcolor="<%=color%>"><div align="left"><%=rs("activation")%></div></td>
</tr>
<% rs.MoveNext
loop
rs.close
conn.close
%>

Medlem sedan apr. 20003 174 inlägg
#2

if activiation = 0 then

Du har ju ingen variabel som heter activiation så det där kan omöjligt fungera. ;)
Skapa variabler av ditt recordset och använd sedan dessa i din if-sats.

Medlem sedan nov. 2003187 inlägg
#3

activation hämtar den ur databsen och den består av antingen datan 0, 1 och 2 och det jag vill är att beroende på vilken siffra den får så ska den visa. den visar färgen fast på alla istället för
varje enskild i tabellen..

Medlem sedan apr. 20003 174 inlägg
#4

nedde skrev:

activation hämtar den ur databsen

Nope, det gör den inte alls - nu. ;)
DU måste hämta den ur databasen först, därför blir färgerna helt fel.

Medlem sedan apr. 20003 174 inlägg
#5

En möjlig lösning...

[red]<%

Set conn = Server.CreateObject("ADODB.Connection")
	conn.open dsn
		Set rs = conn.Execute("SELECT * FROM users ORDER BY AfUsername")

			If NOT rs.EOF Then
				Do until rs.EOF
	
					strAfUsername = rs("AfUsername")
					strState = rs("state")
					strDate = rs("date")
					strActivation = rs("activation")
					
					If strActiviation = 0 Then
						color = "#ffcc00"
					ElseIf strActivation = 1 Then
						color = "#ffffff"
					Else
						color = "#33cc00"
					End If
	
					%>
					<tr>
					<td align="left"><a href="<%= strAfUsername %>" target="_blank"><%= strAfUsername %></a></td>
					<td align="left"><%= strState %></td>
					<td align="left"><%= strDate %></td>
					<td bgcolor="<%= color %>" align="left"><%= strActivation %></td>
					</tr>
					<%
					
				rs.MoveNext
				Loop
	
			End If
			rs.close

		Set rs = Nothing
	conn.close
Set Conn = Nothing

%>[/red]
Medlem sedan nov. 2003187 inlägg
#6

tackar så mycket för att du lägger ner dig..

det lustiga är att jag fick precis samma problem igen. Alla får
samma färg igen.

Medlem sedan apr. 20003 174 inlägg
#7

Hmm.. testa att omvandla till integer. :r

[red]If cInt(strActiviation) = 0 Then
	color = "#ffcc00"
ElseIf cInt(strActivation) = 1 Then
	color = "#ffffff"
Else
	color = "#33cc00"
End If[/red]
Medlem sedan nov. 2003187 inlägg
#8

exakt samma dret. fattar inte varöfr det ska bli så när den ändå
läser koden. nåja.. tack för din hjälp än en gång. får klara mig
utan den häftiga färgen :)

Medlem sedan apr. 20003 174 inlägg
#9

Hur exakt vill du ha det med färgerna, förklara gärna med en bild eller så. :bire

Medlem sedan nov. 2003187 inlägg
#10

fixade det på ett annat vis. istället för färg använder jag mig av
en bild nu istället. men vill du nu se vad det var jag hade
tänkte mig så kan du se resultat här:
http://nedde.com/nedde/users.asp

135 ms totalt · 3 externa anrop · v20260731065814-full.9823c0c5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)