webForumDet fria alternativet

Platser Ledig/Upptagen

ASP

10 svar · 260 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Jag håller på med en kod som jag vill att den ska lista 4 bilder på rad (röda och gröna)
Den ska kolla om tex A1 finns i databasen.. då ska den bli röd annars ska den vara grön

så om plats A1 och A2 är upptagna så ska A3 och A4 vara gröna. Hur gör man detta?
kod jag kör nu (helt fel)

<%
SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "#)) order by dator=true,namn"
set Recset = Databas.Execute(SQL)

plats = recset("plats")

do until recset.eof

if plats = ("A"&a) then
  response.write "upptagen<br>"
else
  response.write "ledig<br>"
end if
a = a+1
recset.movenext
loop

%>

OBS: Jag kommer även köra fler rader som B1-B4 -> D1-D4.. all hjälp här skulle sitta fint :e

ska se ut så här "när jag är färdig":

U L L L
U L L L
L L L L
L L L L

där L är ledig och U är upptagen :e

Medlem sedan dec. 20003 887 inlägg
#2

Räcker det inte om du stoppar in plats = recset("plats") innanför loopen?

Medlem sedan juni 20019 519 inlägg
#3

nej :( då skriver den alltid bara ut två ledig.. konstigt..

även om det skulle fungera så blir det ju inte riktigt som jag vill ha på slut resultatet..

Medlem sedan dec. 20003 887 inlägg
#4
do until recset.eof
  plats = recset("plats")

  for a = 1 to 4
    if plats = ("A" & a) then
      response.write "U&nbsp;"
    else
      response.write "L&nbsp;"
    end if

    if plats = ("B" & a) then
      response.write "U&nbsp;"
    else
      response.write "L&nbsp;"
    end if

    if plats = ("C" & a) then
      response.write "U&nbsp;"
    else
      response.write "L&nbsp;"
    end if

    if plats = ("D" & a) then
      response.write "U&nbsp;<br>"
    else
      response.write "L&nbsp;<br>"
    end if
  next

  recset.movenext
loop

Vad returnerar sql-satsen?

Medlem sedan juni 20019 519 inlägg
#5

har inte testat din kod men detta har jag fått "igång" men detta är väll klumpigt:

<%
a = 1

for a = a to 4

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = 'A" &a&"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
response.write "Ledig<br>"
else
response.write recset("username") &"<br>"
end if
recset.close
set recset = nothing

next 

%>

där fungera A1-A4..

Medlem sedan juni 20019 519 inlägg
#6

Din kod fungera... nästan får

1U L L L 
2L L L L 
3L L L L 
4L L L L 
1L L L L 
2U L L L 
3L L L L 
4L L L L
Medlem sedan juni 20019 519 inlägg
#7

för varje "träff" dvs om jag har A1 A2 och B2 då kommer din kod loopar sej tre gånger.. du kan ju tänka dej själv hur det blir :e

Medlem sedan dec. 20003 887 inlägg
#8

Hehe... jo det är ju sant :)

Jag har feberyrsel tror jag... jag får problem att tänka när jag inte förstår vilken data du får ut. Trött nu...

Du skulle ju kunna göra så att du tar en tvådimensionell matris, som representerar platserna. Loopa igenom den och skriv ut... *tänker högt*

Medlem sedan juni 20019 519 inlägg
#9

typ något sånt ja :e

Medlem sedan juni 20019 519 inlägg
#10
<!-- #include file="database.asp" -->
<table class=no cellpadding="0">
<tr>
<%
a = 1

for a = a to 4

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = 'A" &a&"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
response.write "<td><img src=pics/ledig.gif></td>"
else
response.write "<td><img src=pics/bokad.gif></td>"
end if
recset.close
set recset = nothing

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = 'B" &a&"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
response.write "<td><img src=pics/ledig.gif></td>"
else
response.write "<td><img src=pics/bokad.gif></td>"
end if
recset.close
set recset = nothing

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = 'C" &a&"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
response.write "<td><img src=pics/ledig.gif></td>"
else
response.write "<td><img src=pics/bokad.gif></td>"
end if
recset.close
set recset = nothing

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = 'D" &a&"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
response.write "<td><img src=pics/ledig.gif></td></tr>"
else
response.write "<td><img src=pics/bokad.gif></td></tr>"
end if
recset.close
set recset = nothing

next 

%></tr></table>

Nu fungera det.. kan jag få höra "klumpig kod" mmm :e

Medlem sedan mars 20015 287 inlägg
#11

Oj vilken klumpig kod! ;)
Inte för att jag vet om denna är så mycket smidigare:

<!-- #include file="database.asp" -->

<%
response.write "<table class=no cellpadding=""0""><tr>"

myArr = array("A","B","C","D")

For a = 1 to 4
	For i = 0 to ubound(myArr)
		Call checkdb(myArr(i)&a)
	Next 
Next

response.write "</tr></table>"

Sub checkdb(position)

SQL = "SELECT * " &_
      " FROM lan INNER JOIN users ON lan.username = users.id" &_
      " WHERE (((lan.vilket_lan)=# " & nextlan & "# and lan.plats = '" & position &"'))"
set Recset = Databas.Execute(SQL)
if recset.eof then
	pic = "ledig"
else
	pic = "bokad"
end if
response.write "<td><img src=pics/" & pic & ".gif></td>"
recset.close
set recset = nothing
End Sub
%>
414 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
190 ms — deklarationer (db)
0 ms — hämta statistik (cache)
221 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)