Hur ska man göra för att på ett smart sätt skriva ut bokstäverna i alfabetet som inte redan är "tagna" Dvs. jag har en tabell som innehåller olika uppdrag/projekt och dessa har en egen bokstavskod tex G. Jag vill då i en dropdown visa de bokstäver som inte tillhör något uppdrag/projekt dvs de "lediga" bokstäverna.
Jag har alfabetet i en textsträng som jag loopar ut en och en bokstav från och jämför med bokstavskoden i databasen men jag får endera att de lediga bokstäverna skrivs ut lika många gånger som slingan går eller tvärtom, dvs lika många gånger som det finns poster i databasen....jag blir galen....hur ska jag göra, för att skriva ut de "lediga" bokstäverna en gång!
query = _
"select distinct q from projects right join
(select 'A' as q union
select 'B' union
select 'C' union
select 'D' union
select 'E' union
select 'F' union
select 'G' union
select 'H' union
select 'I' union
select 'J' union
select 'K' union
select 'L' union
select 'M' union
select 'N' union
select 'O' union
select 'P' union
select 'Q' union
select 'R' union
select 'S' union
select 'T' union
select 'U' union
select 'V' union
select 'W' union
select 'X' union
select 'Y' union
select 'Z' ) as alphabet on letter = alphabet.q
where letter is null"
set rs = connect.execute(query)
if not rs.eof then
response.write "<select name='free'>"
while not rs.eof
response.write "<option value='" & rs("q") & "'>" & rs("q") & "</option>"
rs.movenext
wend
response.write "</select>"
end if
rs.close
set rs = nothing
------------------ essentitia preter non sans multiplicandum
<SELECT NAME=free_kod>
<%
Dim alfabet, i
alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ"
Call init()
strSQL = "SELECT omrade_kod FROM grupper ORDER BY omrade_kod ASC"
Set objRS = objConnection.Execute (strSQL)
Do until objRS.EOF
alfabet = taBort(alfabet,Trim(objRS("omrade_kod")))
objRS.MoveNext()
Loop
Call CleanUp()
for i=1 to len(alfabet)%>
<OPTION VALUE=<%=mid(alfabet,i,1)%>><%=mid(alfabet,i,1)%></OPTION>
<%Next%>
</SELECT>
<%
Function taBort(x, y)
Do while InStr(1, x, y,1) <> 0
x = taBortEn(x,y)
Loop
tabort = x
end function
Function taBortEn(x, y)
dim start, stopp, vanster, hoger, vansterLen, hogerLen
start=InStr(1,x,y,1)
stopp=start+Len(y)-1
vansterLen=start-1
hogerLen=len(x)-stopp
vanster=left(x,vansterLen)
hoger=right(x,hogerLen)
taBortEn=vanster+hoger
end function
%>
------------------
Den som söker, måste leta!
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25