webForumDet fria alternativet

Recset "sortera" data.

5 svar · 157 visningar · startad av SannyW

SannyWMedlem sedan jan. 2003438 inlägg
#1

Behöver hjälp med hämtning av data från databas, vill första hämta 1-3 på ett ställe på sidan. Lite längre ner vill jag sedan visa data 4-8 från samma databas.
Vad gör jag för fel???

#################Vill visa 1-3 sorterade på datum:##############

<%

			Set Connect = Server.CreateObject("ADODB.Connection") 
			Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";"

			Set RecSet = Server.CreateObject("ADODB.Recordset")

			Addera = "SELECT \* FROM nyheter ORDER BY DATUM DESC"
			RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
			  %\>
			 \<%
			  X=0
			
			  DO UNTIL RecSet.EOF OR X=3
			  %\>

<tbody>
<tr>
<td><a href="http://"><b><span class="header2"><%=RecSet("rubrik")%></span></b></a><br>
<img src="1x1_tom.gif" alt="" width="1" height="1" border="0"><br>
<%If Len(RecSet("nyhet")) > 150 Then%><%=Left(Replace(RecSet("nyhet"),vbCrLf,"<br>"),150)%>...<%Else%><%=Replace(RecSet("nyhet"),vbCrLf,"<br>")%><%End If%><br>
<span class="gray"><%=FormatDateTime(RecSet("datum"),2)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>">Läs mer</a><br>
</td></tr></tbody>

  \<%
			  X=X+1
			  RecSet.MOVENEXT
			  LOOP
			  
			RecSet.CLOSE
			Connect.CLOSE
			Set RecSet = nothing
			Set Connect = nothing
			 %\>

################Vill sedan visa 4-8 sorterade på datum:###################

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";"

			Set RecSet = Server.CreateObject("ADODB.Recordset")

			Addera = "SELECT \* FROM nyheter ORDER BY DATUM DESC"
			RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
			%\>
  
  \<%
			  X=4
			  RecSet.MOVENEXT
			  DO UNTIL RecSet.EOF OR X=9 
			  %\>

<tbody>
<tr>
<td><span class="gray"><%=FormatDateTime(RecSet("DATUM"),vbshortdate)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>"><%=RecSet("RUBRIK")%></a>

  \<%
			  X=X+1
			  RecSet.MOVENEXT
			  LOOP
			  
			RecSet.CLOSE
			Connect.CLOSE
			Set RecSet = nothing
			Set Connect = nothing
			%\>
cyprysMedlem sedan dec. 20003 563 inlägg
#2

Utan att ändra allt för mycket i din kod:

<% 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";" 

Set RecSet = Server.CreateObject("ADODB.Recordset") 

Addera = "SELECT TOP 8 * FROM nyheter ORDER BY DATUM DESC" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic 

X=0 

DO UNTIL RecSet.EOF 
select case x
case 0, 1, 2
' HÄR HAMNAR 1, 2, 3
%> 
<tbody> 
<tr> 
<td><a href="http://"><b><span class="header2"><%=RecSet("rubrik")%></span></b></a><br> 
<img src="1x1_tom.gif" alt="" width="1" height="1" border="0"><br> 
<%If Len(RecSet("nyhet")) > 150 Then%><%=Left(Replace(RecSet("nyhet"),vbCrLf,"<br>"),150)%>...<%Else%><%=Replace(RecSet("nyhet"),vbCrLf,"<br>")%><%End If%><br> 
<span class="gray"><%=FormatDateTime(RecSet("datum"),2)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>">Läs mer</a><br> 
</td></tr></tbody> 
<% 
case else
' HÄR HAMNAR NR 4, 5, 6, 7, 8
%>
<tbody> 
<tr> 
<td><span class="gray"><%=FormatDateTime(RecSet("DATUM"),vbshortdate)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>"><%=RecSet("RUBRIK")%></a> 
<%
X=X+1 
RecSet.MOVENEXT 
LOOP 

RecSet.CLOSE 
Connect.CLOSE 
Set RecSet = nothing 
Set Connect = nothing 
%>
UlfTMedlem sedan maj 20018 027 inlägg
#3

Eftersom du stänger recsetet efter de första tre, och sedan öppnar det och frågar igen, får du de fyra första. Pröva att inte stänga det, utan fortsätta använda samma recset när du ska ha de fyra nästföljande. Du har ju redan efter första frågan alla raderna i ditt recset.

SannyWMedlem sedan jan. 2003438 inlägg
#4

Tack för Era svar, uppskattar det verkligen att ni hjälper mig. Men jag lämnade ute några rader och de strular nog till det för mig. Så uppdaterar, med allt:

<table width="100%" border="0" cellspacing="2" cellpadding="10" bgcolor="#FFFFFF">
<tr>
<td valign="top">
<% IF Request.QueryString = "" THEN
%>

<%

			Set Connect = Server.CreateObject("ADODB.Connection") 
			Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";"

			Set RecSet = Server.CreateObject("ADODB.Recordset")

			Addera = "SELECT TOP 8 \* FROM nyheter ORDER BY DATUM DESC"
			RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
			    %\>
			 \<%
			  X=0
			
			  DO UNTIL RecSet.EOF OR X=3
			  %\>

<tbody>
<tr>
<td><a href="http://"><b><span class="header2"><%=RecSet("rubrik")%></span></b></a><br>
<img src="1x1_tom.gif" alt="" width="1" height="1" border="0"><br>
<%If Len(RecSet("nyhet")) > 150 Then%><%=Left(Replace(RecSet("nyhet"),vbCrLf,"<br>"),150)%>...<%Else%><%=Replace(RecSet("nyhet"),vbCrLf,"<br>")%><%End If%><br>
<span class="gray"><%=FormatDateTime(RecSet("datum"),2)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>">Läs mer</a><br>
</td></tr></tbody>

  \<%
			  X=X+1
			  RecSet.MOVENEXT
			  LOOP
			  
			  RecSet.CLOSE
			Connect.CLOSE
			Set RecSet = nothing
			Set Connect = nothing
			END IF %\>

<% IF Request.QueryString("do") = "read" THEN
%>
<%
id = Request.QueryString("id")

Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")
SQL = "SELECT * From nyheter WHERE id = " &Request.QueryString("id")

rs.Open SQL, MinCon
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%"><b><%=rs("rubrik")%></b>  <font color="#CCCCCC">[<em><%=FormatDateTime(rs("DATUM"),vbShortdate)%></em>]</font>
</td>
</tr>
<tr>
<td width="100%"><br><%=rs("nyhet")%>
</td></tr>
<tr><td width="100%"><br><br><a href="default.asp?path=main&DO=all">Tillbaka till nyhetsarkivet</a></td></tr>
</table>

    \<p\>
      \<%

rs.Close
MinCon.Close
END IF
%>

</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td bgcolor="#000089" class="white"><FONT COLOR="FFFFFF">_<b>FLER NYHETER</b></FONT></td>
<td bgcolor="#000089" align="right"> </td>
</tr></tbody></table>

<table border="0" cellpadding="1" cellspacing="1" width="100%">

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";"

			Set RecSet = Server.CreateObject("ADODB.Recordset")

			Addera = "SELECT \* FROM nyheter ORDER BY DATUM DESC"
			RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
			%\>
  
  \<%
			  X=4
			  RecSet.MOVENEXT
			  DO UNTIL RecSet.EOF OR X=9 
			  %\>

<tbody>
<tr>
<td><span class="gray"><%=FormatDateTime(RecSet("DATUM"),vbshortdate)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>"><%=RecSet("RUBRIK")%></a>

  \<%
			  X=X+1
			  RecSet.MOVENEXT
			  LOOP
			  
			RecSet.CLOSE
			Connect.CLOSE
			Set RecSet = nothing
			Set Connect = nothing
			%\>             

<br><br> <a href="default.asp?path=nyheter&DO=all"><b>nyhetsarkivet</b></a></td>
</tr></tbody></table>

cyprysMedlem sedan dec. 20003 563 inlägg
#5

Nu ändrar jag ännu mindre i koden ;)

table width="100%" border="0" cellspacing="2" cellpadding="10" bgcolor="#FFFFFF"> 
<tr> 
<td valign="top"> 
<% IF Request.QueryString = "" THEN 
%> 

<% 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";" 

Set RecSet = Server.CreateObject("ADODB.Recordset") 

Addera = "SELECT TOP 8 * FROM nyheter ORDER BY DATUM DESC" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic 
%> 
<% 
X=0 

DO UNTIL RecSet.EOF OR X=3 
%> 

<tbody> 
<tr> 
<td><a href="http://"><b><span class="header2"><%=RecSet("rubrik")%></span></b></a><br> 
<img src="1x1_tom.gif" alt="" width="1" height="1" border="0"><br> 
<%If Len(RecSet("nyhet")) > 150 Then%><%=Left(Replace(RecSet("nyhet"),vbCrLf,"<br>"),150)%>...<%Else%><%=Replace(RecSet("nyhet"),vbCrLf,"<br>")%><%End If%><br> 
<span class="gray"><%=FormatDateTime(RecSet("datum"),2)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>">Läs mer</a><br> 
</td></tr></tbody> 

<% 
X=X+1 
RecSet.MOVENEXT 
LOOP 

RecSet.CLOSE 
Connect.CLOSE 
Set RecSet = nothing 
Set Connect = nothing 
END IF %> 

<% IF Request.QueryString("do") = "read" THEN 
%> 
<% 
id = Request.QueryString("id") 

Set MinCon = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.Recordset") 
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb") 
SQL = "SELECT * From nyheter WHERE id = " &Request.QueryString("id") 

rs.Open SQL, MinCon 
%> 
<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td width="100%"><b><%=rs("rubrik")%></b>  <font color="#CCCCCC">[<em><%=FormatDateTime(rs("DATUM"),vbShortdate)%></em>]</font> 
</td> 
</tr> 
<tr> 
<td width="100%"><br><%=rs("nyhet")%> 
</td></tr> 
<tr><td width="100%"><br><br><a href="default.asp?path=main&DO=all">Tillbaka till nyhetsarkivet</a></td></tr> 
</table> 

<p> 
<% 
rs.Close 
MinCon.Close 
END IF 
%> 

</td> 
</tr> 
</table> 
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td bgcolor="#000089" class="white"><FONT COLOR="FFFFFF">_<b>FLER NYHETER</b></FONT></td> 
<td bgcolor="#000089" align="right"> </td> 
</tr></tbody></table> 

<table border="0" cellpadding="1" cellspacing="1" width="100%"> 

<% 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/site.mdb")&";" 

Set RecSet = Server.CreateObject("ADODB.Recordset") 

Addera = "SELECT * FROM nyheter ORDER BY DATUM DESC" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic 
%> 

<% 
x = 4
RecSet.Move 4
DO UNTIL RecSet.EOF OR X=9 
%> 
<tbody> 
<tr> 
<td><span class="gray"><%=FormatDateTime(RecSet("DATUM"),vbshortdate)%></span> <a href="default.asp?path=main&DO=read&id=<%=RecSet("id")%>"><%=RecSet("RUBRIK")%></a> 

<% 
X=X+1 
RecSet.MOVENEXT 
LOOP 

RecSet.CLOSE 
Connect.CLOSE 
Set RecSet = nothing 
Set Connect = nothing 
%> 

<br><br> <a href="default.asp?path=nyheter&DO=all"><b>nyhetsarkivet</b></a></td> 
</tr></tbody></table>
SannyWMedlem sedan jan. 2003438 inlägg
#6

Grymt Cyprus, tackar så mycket för lösningen. Det funkar kanon....

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