Avatar billede jfsjfs Nybegynder
13. juli 2006 - 13:58 Der er 7 kommentarer

ASP skift billede ud fra værdien af en SQL Query

Jeg skal lave noget kode i ASP der ud fra værdien af en MySQL Query kan skifte et billede.

Eksempel:
Hvis værdien af RS("COUNT(DISTINCT id)") er mindre end 100 så skal billede #1 vises.

Hvis værdien af RS("COUNT(DISTINCT id)") er større end 100 så skal billede #2 vises.

Jeg vil altså gerne indsætte et billede i en tabel, hvor filnavnet på billedet blive bestemt ud fra værdien af et SQL recordsæt.

Det skal bruges til overvågning af en database, hvor jeg rent grafisk vii vise med en grønt database-ikon at status er OK og med et rødt ikon hvis status er 'Ikke OK'

Her er SQL koden:

<%   
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=x.x.x.x;DATABASE=xxx;Uid=xxx;Pwd=xxx;port=3306   
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT COUNT(DISTINCT id) FROM rtg.expedIfBss16QAMCpes WHERE dtime BETWEEN (NOW()- INTERVAL 3600 SECOND) AND NOW();"
Set RS=Conn.execute(strSQL)
Response.Write RS("COUNT(DISTINCT id)") & "<br>"
rs.MoveNext
Conn.Close
Set Conn = Nothing
%>
Avatar billede fennec Nybegynder
13. juli 2006 - 14:04 #1
Det er bare at tjekke om værdien er større end 100 eller ej:

strSQL = "SELECT COUNT(DISTINCT id) FROM rtg.expedIfBss16QAMCpes WHERE dtime BETWEEN (NOW()- INTERVAL 3600 SECOND) AND NOW();"
Set RS=Conn.execute(strSQL)
if rs(0) < 100 then
  response.write "<img src=""red.gif"">"
else
  response.write "<img src=""green.gif"">"
end if
Avatar billede jfsjfs Nybegynder
13. juli 2006 - 15:19 #2
Mange tak! Det hjalp en hel del. En lille ting:

Istedet for at lave en 'Response.Write' under IF / THEN sætningen, kan jeg
så definere navnet på en <DIV> som jeg senere kan indsætte i HTML koden?

Fx.

<DIV ID="<%divname%>"></div>
hvor <%divname%> bliver defineret alt efter værdien af min SQL Query.

Sådan at IF / THEN sætninger bliver noget i denne stil:

if rs(0) < 100 then
  (definer navnet på div#1)
else
  (definer navnet på div#2)
end if

På forhånd tak!
Avatar billede fennec Nybegynder
13. juli 2006 - 15:29 #3
Sagtens:

if rs(0) < 100 then
  divname = "myDiv1"
else
  divname = "myDiv2"
end if
Avatar billede jfsjfs Nybegynder
13. juli 2006 - 15:42 #4
Super. Det er jo meget simpelt.
Får dog en runtime error når jeg indsætter <%divname%> :

<DIV ID="<%divname%>"></div>

Er dette ikke korrekt?

Hvis jeg fjerner <%divname%> som ID, kommer der ikke noget fejl.
Så fejlen må ligge her.... Hmmm.
Avatar billede fennec Nybegynder
13. juli 2006 - 16:14 #5
Du mangler et = eller response.write

<DIV ID="<%= divname %>"></div>
<DIV ID="<% response.write divname %>"></div>
Avatar billede jfsjfs Nybegynder
13. juli 2006 - 16:23 #6
Tusinde tak - Det virker!
Jeg er først ved at lære ASP - derfor er jeg lidt 'tung' i det.
Avatar billede fennec Nybegynder
13. juli 2006 - 16:35 #7
Ja, det kunne jeg fornemme :o)
Men vi har alle været nybegyndere en gang, så det er helt i orden.

Som nybegynder på her på E, vil jeg anbefale at du tager et kik på FAQ'en. Den beskriver hvordan man afgiver point og acceptere svar, samt mange andre ting:
http://expfaq.dk/

.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester