Avatar billede lund_dk Praktikant
02. juni 2004 - 17:42 Der er 2 kommentarer og
1 løsning

Loop med alfabetet

Jeg har en menu som ser således ud

<a href="A">Menu A</a>
<a href="B">Menu B</a>
<a href="C">Menu C</a>
<a href="D">Menu D</a>

Jeg vil så med min database udskrive hvor mange poster der er i en tabel hvor ordet i en post starter med A

set ANTAL_A = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = 'A' ")
antal_A = ANTAL_A("antal")

Og det vil jeg selvfølgelig med alle A, B, C, D menuerne.

Men vil ikke lave det sådan her:

set ANTAL_A = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = 'A' ")
antal_A = ANTAL_A("antal")

set ANTAL_B = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = 'B' ")
antal_B = ANTAL_B("antal")

set ANTAL_C = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = 'C' ")
antal_C = ANTAL_C("antal")

set ANTAL_D = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = 'D' ")
antal_D = ANTAL_D("antal")


Det gir rigtig rigtig rigtig rodet kode, er der ikke en nemmere måde at gribe det an på ved hjælp af loop ?
Avatar billede eagleeye Praktikant
02. juni 2004 - 17:52 #1
Det kan gøres med et recordset og ved brug af funktionen execute. Så koden bliver i stil med:

<%
for i = Asc("A") to Asc("D")
  set ANTAL = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = '" & Chr(i) & "'")
  execute("antal_" & Chr(i) & "=" & ANTAL("antal"))
next

%>
Avatar billede lund_dk Praktikant
02. juni 2004 - 18:21 #2
Ah okay.. smart nok.. har stillet det op sådan her:

<%
for i = Asc("A") to Asc("Z")
  set ANTAL = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = '" & Chr(i) & "'")
  execute("antal_" & Chr(i) & "=" & ANTAL("antal"))
  %>
<tr><td class="menuCel"><a class="menu" href="default.asp?s=fonts&sort=A">Fonts <%=Chr(i)%></a></td><td><%= antal_" & Chr(i) & " %></td></tr>
<%
next
%>

<%= antal_" & Chr(i) & " %> giver problemer.. :/ er jeg galt på den ? :(
Avatar billede eagleeye Praktikant
02. juni 2004 - 19:02 #3
Prøv at rette:

Hvis du "bare" udskriver tallet med det samme og ikke skal bruge variablene antal_A, antal_B, antal_C osv i koden kan du lave det sådan her:



<%
for i = Asc("A") to Asc("Z")
  set ANTAL = Conn.Execute("select count(*) as antal from fonts where left(navn,1) = '" & Chr(i) & "'")
  antal=ANTAL("antal")
  %>
<tr><td class="menuCel"><a class="menu" href="default.asp?s=fonts&sort=A">Fonts <%=Chr(i)%></a></td><td><%= antal %></td></tr>
<%
next
%>
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging