webForumDet fria alternativet

Skriv inte ut det som finns

ASP

11 svar · 452 visningar · startad av Meng

Medlem sedan feb. 2003549 inlägg
Frågan#1

Hej jag har gjort denna koden:

<%Set RecSet = Conn.Execute("SELECT * FROM news WHERE ar = " & whatyearisitnow & " ORDER BY uge ASC")%>

  <tr>
    <td align="left" width="150">

		 <select name="uge">
		 <% 
			For i = 1 To 52 
		 %>
		<%If RecSet(uge) <> i Then%>
		 <option value="<%=i%>">Uge <%=i%></option>
		<%End If%>
		 <% 
			Next 'i 
		 %> 

</select>
<%RecSet.Close
Set RecSet = Nothing%>

Meningen med den är att den inte ska skriva ut de veckor som redan existerar, varför funkar inte det?

Medlem sedan nov. 200321 inlägg
#2

Vad får du för fel då, eller får du ett felmeddelande?

Medlem sedan dec. 200012 464 inlägg
#3
<%If clng(RecSet("uge")) <> i Then%>
Medlem sedan feb. 2003549 inlägg
#4

Det funkar ändå inte, den skriver ut alla värden från 1 till 52 så jag får alltså inget fel meddelande heller..

Medlem sedan feb. 2003549 inlägg
#5

Måste jag inte Loopa ut värdena i "uge" fältet? För väljer jag ASC så försvinner vecka 18 och DESC så försvinner vecka 47

Databasen innehåller vecka 18,19,21-47

Hur loopar jag ut detta? hur jag än har försökt så funkar det ej..

Medlem sedan maj 2002560 inlägg
#6

Om du skriver ut RecSet(uge) vad innehåller den då?
Vad innehåller variabeln uge för värde?

Medlem sedan feb. 2003549 inlägg
#7

18
19
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

Refererar till mitt tidigare svar: #939743

Medlem sedan dec. 200012 464 inlägg
#8

Du måste stega fram i ditt recordset när du hittar en matchande vecka.

<%If clng(RecSet("uge")) <> i Then%>
		 <option value="<%=i%>">Uge <%=i%></option>
<%else%>
rs.movenext
		<%End If%>

Om dur har order by desc i SQL-frågan så får du stega nedåt i din for-loop.

Medlem sedan juni 2000126 inlägg
#9

Skapa en tabell i databasen som innehåller1 kolumn: weeknumber int.
Läg sedan in värdena 1-52.
I SQL kommandot skriver du sedan

"SELECT weeknumber  from tblWeeknumbers where weeknumber NOT IN (
SELECT distinct uge FROM news WHERE ar = " & whatyearisitnow & "
) order by weeknumber asc"

Då får du enbart ut de veckonummerna som INTE finns med i News tabellen.
Och då är det bara att loop ut ditt recordset som vanligt

Medlem sedan juni 2002256 inlägg
#10

Annars en lite mer udda lösning:

<%
Set RecSet = Conn.Execute("SELECT uge FROM news WHERE ar = " & whatyearisitnow & " ORDER BY uge ASC")

Dim foundWeeks
foundWeeks = ""
If NOT RecSet.EOF Then
     Do Until RecSet.EOF
     foundWeeks = foundWeeks & RecSet("uge")& "|"
     RecSet.MoveNext
     Loop
End If

RecSet.Close()
Set RecSet = Nothing
%>

<tr>
<td align="left" width="150">

<select name="uge">
     <% For i = 1 To 52  %>
          <% If InStr(foundWeeks,i& "|") > 0 Then%>
          <option value="<%=i%>">Uge <%=i%></option>
          <%End If%>
     <% Next  %> 
</select>
Medlem sedan feb. 2003549 inlägg
#11

Denkan skrev:

Annars en lite mer udda lösning:

<%
Set RecSet = Conn.Execute("SELECT uge FROM news WHERE ar = " & whatyearisitnow & " ORDER BY uge ASC")

Dim foundWeeks
foundWeeks = ""
If NOT RecSet.EOF Then
     Do Until RecSet.EOF
     foundWeeks = foundWeeks & RecSet("uge")& "|"
     RecSet.MoveNext
     Loop
End If

RecSet.Close()
Set RecSet = Nothing
%>

<tr>
<td align="left" width="150">

<select name="uge">
     <% For i = 1 To 52  %>
          <% If InStr(foundWeeks,i& "|") > 0 Then%>
          <option value="<%=i%>">Uge <%=i%></option>
          <%End If%>
     <% Next  %> 
</select>

Nu visas vecka 1-19 och 21-47 ? hur går det till? vecka 1-17 existerar ju inte..

Medlem sedan juni 2002256 inlägg
#12

Råkade vända på det.

<%
Set RecSet = Conn.Execute("SELECT uge FROM news WHERE ar = " & whatyearisitnow & " ORDER BY uge ASC")

Dim foundWeeks
foundWeeks = ""
If NOT RecSet.EOF Then
     Do Until RecSet.EOF
     foundWeeks = foundWeeks & RecSet("uge")& "|"
     RecSet.MoveNext
     Loop
End If

RecSet.Close()
Set RecSet = Nothing
%>

<tr>
<td align="left" width="150">

<select name="uge">
     <% For i = 1 To 52  %>
          <% If InStr(foundWeeks,i& "|") = 0 Then%>
          <option value="<%=i%>">Uge <%=i%></option>
          <%End If%>
     <% Next  %> 
</select>
259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)