webForumDet fria alternativet

Loop problem

5 svar · 223 visningar · startad av wborg

wborgMedlem sedan dec. 2003209 inlägg
#1

Hej,

har problem att loopa ut data så som jag vill ha det.

Så här ser det ut nu: http://www.monow.se/borg/mystat/klubb_filt.asp

men vill ha det så här: http://www.monow.se/borg/mystat/wanted.asp

Jag vill ha en tabell utloopad för varje datum (tbl_res.Date)

och här är koden som den ser ut just nu:

<html>
<head>
  <title></title>

<style type="text/css">

td {
     font-size: 11px;
     font-family: verdana;
     color: black;
   }

a  {
     text-decoration: none;
   }

</style>

<link rel="stylesheet" type="text/css" href="css/table.css">
</head>

<body>

<table border="0">
  <tr>
    <td valign="top">

      <%
        Set Conn = Server.CreateObject("ADODB.Connection") 
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/db.mdb") 
        Set objrs = Conn.Execute("SELECT tbl_player.Namn, tbl_player.Efternamn, tbl_res.AMT1, tbl_res.AMT2, tbl_res.AMT3, tbl_res.AMT4, tbl_res.AMT5, tbl_res.AMT6, tbl_res.AMT7, tbl_res.AMT8, tbl_res.AMT9, tbl_res.AMT10, tbl_res.AMT11, tbl_res.AMT12, tbl_res.AMT13, tbl_res.AMT14, tbl_res.AMT15, tbl_res.AMT16, tbl_res.AMT17, tbl_res.AMT18, tbl_res.TOTAL FROM tbl_player INNER JOIN tbl_res ON tbl_player.PlayerId=tbl_res.PlayerId WHERE tbl_res.Surface = 'Filt' ORDER BY Date, Varv")
      %>

      <table border="1" style="border-collapse: collapse" bordercolor="1px solid #000000">
        <tr bgcolor="#CDD5E4" style="font-weight: bold">
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=1" target="top10">1</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=2" target="top10">2</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=3" target="top10">3</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=4" target="top10">4</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=5" target="top10">5</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=6" target="top10">6</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=7" target="top10">7</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=8" target="top10">8</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=9" target="top10">9</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=10" target="top10">10</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=11" target="top10">11</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=12" target="top10">12</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=13" target="top10">13</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=14" target="top10">14</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=15" target="top10">15</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=16" target="top10">16</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=17" target="top10">17</a></td>
          <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=18" target="top10">18</a></td>
          <td width="30" align="center">Tot</td>
        </tr>

        <% 
          If objrs.eof then 
          response.write "<tr><td colspan=""19"">Det finns inga resultat!</td></tr>"
          Else
          do while not objrs.eof 
          i = i + 1
          If i Mod 2 = 0 Then
        %>

        <tr bgcolor="#EEEEEE">
          <% Else %>
        <tr bgcolor="#FFFFFF">
          <% End If %>

          <td align="center"><%=objrs("AMT1")%></td>
          <td align="center"><%=objrs("AMT2")%></td>
          <td align="center"><%=objrs("AMT3")%></td>
          <td align="center"><%=objrs("AMT4")%></td>
          <td align="center"><%=objrs("AMT5")%></td>
          <td align="center"><%=objrs("AMT6")%></td>
          <td align="center"><%=objrs("AMT7")%></td>
          <td align="center"><%=objrs("AMT8")%></td>
          <td align="center"><%=objrs("AMT9")%></td>
          <td align="center"><%=objrs("AMT10")%></td>
          <td align="center"><%=objrs("AMT11")%></td>
          <td align="center"><%=objrs("AMT12")%></td>
          <td align="center"><%=objrs("AMT13")%></td>
          <td align="center"><%=objrs("AMT14")%></td>
          <td align="center"><%=objrs("AMT15")%></td>
          <td align="center"><%=objrs("AMT16")%></td>
          <td align="center"><%=objrs("AMT17")%></td>
          <td align="center"><%=objrs("AMT18")%></td>
          <td align="center" style="font-weight: bold">

            <% 
              strTot = objrs("TOTAL")

              if strTot < 30 then 
	      response.write "<font color=""blue"">"&objrs("TOTAL")&"</font>"

              elseif strTot < 36 then 
	      response.write "<font color=""green"">"&objrs("TOTAL")&"</font>"

              elseif strTot < 40 then
	      response.write "<font color=""red"">"&objrs("TOTAL")&"</font>"
	   
	      elseif strTot > 39 then
	      response.write "<font color=""black"">"&objrs("TOTAL")&"</font>"

              End if 
            %>

          </td>
        </tr>
        <% 
          objrs.movenext
          loop
          end if
        %>
      </table>
    </td>
    <td valign="top">
      <iframe src="top10.asp" name="top10" frameborder="0" scrolling="no" valign="top" height="480">
      <table>
         
	<%
	  Set Conn = Server.CreateObject("ADODB.Connection") 
	  Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/xlr13x3sm.mdb") 

          Dim strLane
	  strLane = Request.Querystring("Lane")
          
	  Set objrs = Conn.Execute("SELECT TOP 10 tbl_res.PlayerId, Round(Avg(AMT"&strLane&"+0),3) AS medel, tbl_player.Namn, tbl_player.Efternamn FROM tbl_res INNER JOIN tbl_player ON tbl_res.PlayerId = tbl_player.PlayerId GROUP BY tbl_res.PlayerId, tbl_player.Namn, tbl_player.Efternamn ORDER BY Avg(AMT"&strLane&"+0)")
	%>

	<% 
          if objrs.eof then
	  response.write "" 

          else 
        %>

	<tr>
	  <td colspan="2"><span class="rub2">Top 10 - Bana <%=StrLane%></td>
	</tr>
	<tr>
	  <td colspan="2" height="10"></td>
	</tr>
	<tr>
	  <td width="150"><b>Namn</b></td>
	  <td><b>Snitt</b></td>
	</tr>

        <%
	  do until objrs.eof 
	%>
	
	<tr onMouseOver="this.style.backgroundColor='#F4F4F4';" onMouseOut="this.style.backgroundColor='';">
          <td><input type="hidden" value="<%=objrs("PlayerId")%>"><a href="viewstat.asp?PlayerId=<%=objrs("PlayerId")%>"><%=objrs("Namn")%>&nbsp; <%=objrs("Efternamn")%></a></td>
	  <td>
            <% 
              Varde = objrs("medel")
	      Response.Write FormatNumber(Varde, 2) 
            %>
          </td>
	</tr>
	<tr>
	  <td bgcolor="#f4f4f4" colspan="2" height="1"></td>
	</tr>
	
        <% 
          objrs.movenext
	  loop
	  end if 
        %>

      </table>
      </iframe>
    </td>
  </tr>
</table>
</body>
</html>

Någon som har en bra lösning på detta?

/S

joel_joel88Medlem sedan nov. 20021 222 inlägg
#2

Du kan använda din räknare (i=i+1). Räknaren motsvarar ju antalet rader som skrivs ut.
När räknaren t.ex har räknat till fem då så bryter du av tabellen. Sedan så fortsätter du så när du vill bryta av tabellen vid olika antal rader.

Vet inte om det är så som du menar. Om det är det så har du något att gå på.

wborgMedlem sedan dec. 2003209 inlägg
#3

Jag vet inte om det är så jag tänkt mig, förstår inte riktigt hur du menar.

Kan du visa hur det skulle se ut i praktiken på något sätt?

J.N.Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Det finns ett antal kodexempel på detta, man gör så när man vill avsluta tex en tabell för att börja en ny.

if i=5 then response.write "</tr></table><table><tr>"

Beroende på övrig kod, kanske du måste nollställa i och/eller skapa </td><td> också.

wborgMedlem sedan dec. 2003209 inlägg
#5

Hej igen,

har nu gjort vissa modifieringar i koden (Johnny, fick ej ngn pli på ditt förslag) :S

Det som händer nu är att sidan säger "Det finns inga resultat!" men jag vet att det finns resultat i db:n eftersom dte kommer fram på denna sida:

http://www.monow.se/borg/mystat/klubb_filt_skarp.asp

men inte på denna sida:

http://www.monow.se/borg/mystat/klubb_filt.asp

lite missvisande namn på filerna kanske eftersom den som heter skarp inte är den som jag arbetar med :D

min db ser ut så här:

tbl_res [Id (räknare, primärnyckel), PlayerId (text), Surface (text), Date (datum/tid), Comp_Name (text), Varv (text), AMT1 (tal), AMT2 (tal), AMT3 (tal), AMT4 (tal), AMT5 (tal), AMT6 (tal), AMT7 (tal), AMT8 (tal), AMT9 (tal), AMT10 (tal), AMT11 (tal), AMT12 (tal), AMT13 (tal), AMT14 (tal), AMT15 (tal), AMT16 (tal), AMT17 (tal), AMT18 (tal), TOTAL (tal)
tbl_player [Id (räknare, primärnyckel), Namn (text), Efternamn (text), PlayerId (text), Visa (ja/nej)

och koden så här:

<%
Sub createNewTableStart(endPrevTable)
	if endPrevTable then response.write vbCrLf & "</table>" & vbCrLf & "<br />" & vbCrLf
%>
<table border="1" style="border-collapse: collapse" bordercolor="1px solid #000000">
    <tr bgcolor="#CDD5E4" style="font-weight: bold">
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=1" target="top10">1</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=2" target="top10">2</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=3" target="top10">3</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=4" target="top10">4</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=5" target="top10">5</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=6" target="top10">6</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=7" target="top10">7</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=8" target="top10">8</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=9" target="top10">9</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=10" target="top10">10</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=11" target="top10">11</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=12" target="top10">12</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=13" target="top10">13</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=14" target="top10">14</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=15" target="top10">15</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=16" target="top10">16</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=17" target="top10">17</a></td>
        <td width="30" align="center"><a href="top10.asp?Show=Top10&Lane=18" target="top10">18</a></td>
        <td width="30" align="center">Tot</td>
    </tr>
<%
End Sub
%>
<html>
<head>
<title></title>
<style type="text/css">
td {
     font-size: 11px;
     font-family: verdana;
     color: black;
   }
a  {
     text-decoration: none;
   }
.blueText {
	color:blue;
	font-weight: bold;
}   
.greenText {
	color:green;
	font-weight: bold;
}   
.redText {
	color:red;
	font-weight: bold;
}   
.blackText {
	color:black;
	font-weight: bold;
}   
</style>
<link rel="stylesheet" type="text/css" href="css/table.css">
</head>
<body>
<%
dim Conn, objrs, i, prevDate, currDate, strTot
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/xlr13x3sm.mdb") 
Set objrs = Conn.Execute("SELECT tbl_player.Namn, tbl_player.Efternamn, tbl_res.AMT1, tbl_res.AMT2, tbl_res.AMT3, tbl_res.AMT4, tbl_res.AMT5, tbl_res.AMT6, tbl_res.AMT7, tbl_res.AMT8, tbl_res.AMT9, tbl_res.AMT10, tbl_res.AMT11, tbl_res.AMT12, tbl_res.AMT13, tbl_res.AMT14, tbl_res.AMT15, tbl_res.AMT16, tbl_res.AMT17, tbl_res.AMT18, tbl_res.TOTAL, tbl_res.Date, tbl_res.Comp_Name FROM tbl_player INNER JOIN tbl_res ON tbl_player.PlayerId=tbl_res.PlayerId WHERE tbl_res.Comp_Name='"&strCompName&"' AND tbl_res.Surface ='Filt' ORDER BY tbl_res.Date, tbl_res.Varv")

i=0
while not objrs.BOF and not objrs.EOF
  currDate = objrs("Date")
  if IsEmpty(prevDate) then 'first iteration
	createNewTableStart(false)
  elseif prevDate <> currDate then
	createNewTableStart(true)
  end if
  i = i + 1
  If i Mod 2 = 0 Then
%>
  <tr bgcolor="#EEEEEE">
  <% Else %>
  <tr bgcolor="#FFFFFF">
  <% End If %>
	
	<td align="center"><%=objrs("AMT1")%></td>
	<td align="center"><%=objrs("AMT2")%></td>
	<td align="center"><%=objrs("AMT3")%></td>
	<td align="center"><%=objrs("AMT4")%></td>
	<td align="center"><%=objrs("AMT5")%></td>
	<td align="center"><%=objrs("AMT6")%></td>
	<td align="center"><%=objrs("AMT7")%></td>
	<td align="center"><%=objrs("AMT8")%></td>
	<td align="center"><%=objrs("AMT9")%></td>
	<td align="center"><%=objrs("AMT10")%></td>
	<td align="center"><%=objrs("AMT11")%></td>
	<td align="center"><%=objrs("AMT12")%></td>
	<td align="center"><%=objrs("AMT13")%></td>
	<td align="center"><%=objrs("AMT14")%></td>
	<td align="center"><%=objrs("AMT15")%></td>
	<td align="center"><%=objrs("AMT16")%></td>
	<td align="center"><%=objrs("AMT17")%></td>
	<td align="center"><%=objrs("AMT18")%></td>
	<td align="center">
	<% 
	strTot = objrs("TOTAL")
	if strTot < 30 then 
		response.write "<span class=""blueText"">"&strTot&"</span>"
	elseif strTot < 36 then 
		response.write "<span class=""greenText"">"&strTot&"</span>"
	elseif strTot < 40 then
		response.write "<span class=""redText"">"&strTot&"</span>"
	elseif strTot > 39 then
		response.write "<span class=""blackText"">"&strTot&"</span>"
	End if 	
	response.write vbCrLf & "</td>" & vbCrLf & "</tr>" & vbCrLf
	prevDate = currDate
	objrs.movenext
wend
if i=0 then 'empty recordset
  response.write "<tr><td colspan=""19"">Det finns inga resultat!</td></tr>"
end if
%>
</table>
<%
'close and kill recordset/connection objects
objrs.close
set objrs = nothing
Conn.close
set Conn = nothing
%>

</body>
</html>

Hoppas någon kan hjälpa mig få ordning på detta.

/S

J.N.Medlem sedan apr. 20031 660 inlägg
#6

HEJ!

wborg skrev:

har nu gjort vissa modifieringar i koden (Johnny, fick ej ngn pli på ditt förslag)

Vad för pli är det du saknade, eller det är inte den vägen du vill gå?

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)