Avatar billede cygnet Praktikant
26. juni 2003 - 10:39 Der er 17 kommentarer og
2 løsninger

2 udtræk i hver række

Hvordan får jeg så der kommer to udtræk i hver række og den ikke gentager den sidste post i databasen to gange til sidst..

Noget i stil med

<table>
<tr>
<td>første udtrækt</td>
<td>andet udtræk</td>
</tr>
<tr>
<td>trejde udtræk</td>
<td>fjerde udtrælk</td>
</tr>
</table>


/cygnet
Avatar billede thb Nybegynder
26. juni 2003 - 10:44 #1
Du kan skrive..
i = 0
response.write "<tr>"

s.movefirst
Do while not s.eof

response.write "<td>Udtræk</td>"

i = i+1
s.movenext

if i = 2 then
  response.write "</tr><tr>"
  i = 0
end if

Loop
Avatar billede carpediem Nybegynder
26. juni 2003 - 10:46 #2
Response.Write "<TABLE>"
i = 1
Do While NOT rs.EOF
  If i mod 2 = 0 Then
    Response.Write "<TD>" & rs("Felt") & "</TD></TR>"
  Else
    Response.Write "<TR><TD>" & rs("Felt") & "</TD>"
  End If
  i = i + 1
  rs.MoveNext
Loop
rs.Close
If i mod 2 = 0 Then
  Response.Write "<TD>&nbsp;</TD></TR></TABLE>"
Else
  Response.Write "</TABLE>"
End If
Avatar billede cygnet Praktikant
26. juni 2003 - 11:00 #3
carpe

Den går ret i stå med dette:

<table width=100%>
          <%
i = 1
do while not rstemp.eof
If i mod 2 = 0 Then
  %>
 
          <tr>
    <td></td>

<% end if %>
<% else %>

    <tr>
    <td></td>

<% end if %>

<%    End If
i = i + 1
rs.MoveNext
Loop
rs.Close

If i mod 2 = 0 Then
%>
<TD></TD></TR></TABLE>
Else
  %>
</TABLE>
<%
End If

%>
Avatar billede carpediem Nybegynder
26. juni 2003 - 11:04 #4
Hvis det er den kode du bruger, så har du lavet et uendeligt loop
Din rs.movenext og din rs.close
skal også hedde rstemp.movenext og rstemp.close
Avatar billede thb Nybegynder
26. juni 2003 - 11:05 #5
Du kan jo bare bruge min metode.. :) Den virker.. :)

Thomas
Avatar billede carpediem Nybegynder
26. juni 2003 - 11:07 #6
Du har heller ikke skrevet det der står i mit svar.
Der er noget helt galt inde i dine if sætninger.

Thomas --> Det gør min også... :-)
Avatar billede cygnet Praktikant
26. juni 2003 - 11:07 #7
carpe > så jeg også samtidigt ?

Er det muligt at bytte om på række følgen af de to felter - lige nu bytter den jo lidt rundt på min sorteringsrækkefølge
Avatar billede carpediem Nybegynder
26. juni 2003 - 11:09 #8
<table width=100%>
<%
i = 1
do while not rstemp.eof
  If i mod 2 = 0 Then
    %>
    <td></td></tr>
  <% else %>
    <tr><td></td>
  <% end if
  i = i + 1
rstemp.MoveNext
Loop
rstemp.Close

If i mod 2 = 0 Then
  %>
  <TD></TD></TR></TABLE>
  <%
Else
  %>
  </TABLE>
  <%
End If
%>
Avatar billede carpediem Nybegynder
26. juni 2003 - 11:12 #9
Et godt råd er forøvrigt, at du ikke hele tiden skal "gå ind og ud af" ASP kode
Rent performance mæssigt er det klart en fordel at blive i ASP, og skrive ASP koden ud med Response.Write
Avatar billede cygnet Praktikant
26. juni 2003 - 11:14 #10
Må nok indrømme at jeg tog thb svar - var sgu lidt mere smart.

I orden jeg giver jer 30 point hver ?

Så kom lige med et svar thb
Avatar billede carpediem Nybegynder
26. juni 2003 - 11:17 #11
Har du testet thb´s ved et ulige antal poster?
Avatar billede thb Nybegynder
26. juni 2003 - 11:23 #12
Her kommer der et svar..

Thomas
Avatar billede cygnet Praktikant
26. juni 2003 - 11:36 #13
jeps - det har jeg og det giver meget mindre kode - så det er helt perfekt. Og også let at sætte hvis man f.eks. skal være tre i hver række
Avatar billede carpediem Nybegynder
26. juni 2003 - 12:28 #14
Jeg har nu testet dem begge. Og der var egentlig ikke nogen af dem der virkede optimalt. Min egen havde en lidt sjov start. Og thb´s overholder ikke w3c standarden, da den ikke afslutter tabellen korrekt, hvis der er tale om et ulige antal poster.
Så jeg har lavet en modifikation af min egen, men lidt idéer fra thbs.
Det må være den optimale:
Response.Write "<TABLE><TR>"
i = 0
Do While NOT rsTemp.EOF
  If i > 0 AND i mod 2 = 0 Then
    Response.Write "</TR>" & vbCrLf & "<TR>"
  End If
  Response.Write "<TD>" & rsTemp("Felt") & "</TD>"
  i = i + 1
  rsTemp.MoveNext
Loop
rsTemp.Close
If i mod 2 = 0 Then
  Response.Write "</TABLE>"
Else
  Response.Write "<TD>&nbsp;</TD></TR></TABLE>"
End If
Avatar billede thb Nybegynder
26. juni 2003 - 14:40 #15
carpediem > Det er jo bare at skrive </tr> under kode, og det troede jeg var logik... jeg har heller ikke skrevet <table> og </table>
Avatar billede carpediem Nybegynder
26. juni 2003 - 14:42 #16
Nej, når du har et ulige antal poster, kommer din version til at se ud som følger:
<table>
<tr>
<td>første udtrækt</td>
<td>andet udtræk</td>
</tr>
<tr>
<td>trejde udtræk</td>
</tr>
</table>
Avatar billede carpediem Nybegynder
26. juni 2003 - 14:43 #17
Der mangler celle nummer to i sidste række i tabellen.
Det er det mine sidste 5 linjer sørger for at lave.
Avatar billede carpediem Nybegynder
26. juni 2003 - 14:52 #18
Faktisk har jeg lige fundet en fejl mere i den jeg kaldte den optimale. Der mangler en </TR> afslutning ved lige antal poster.

Response.Write "<TABLE><TR>"
i = 0
Do While NOT rsTemp.EOF
  If i > 0 AND i mod 2 = 0 Then
    Response.Write "</TR>" & vbCrLf & "<TR>"
  End If
  Response.Write "<TD>" & rsTemp("Felt") & "</TD>"
  i = i + 1
  rsTemp.MoveNext
Loop
rsTemp.Close
If i mod 2 = 0 Then
  Response.Write "</TR></TABLE>"
Else
  Response.Write "<TD>&nbsp;</TD></TR></TABLE>"
End If
Avatar billede thb Nybegynder
26. juni 2003 - 21:50 #19
Det er jo godt nok.. det er jeg sikker at han bliver glad for
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