![]() |
|
|
|||||||
| ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp). |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
Plocka ut bara första posten ur ett recordset
Hej.
Detta är mitt första inlägg, dvs fråga.... Jag undrar om det finns nån som kan hjälpa mig med en liten sak. Jag har ett recordset där jag läer upp rader med kategorier och nyheter under respektive kategori, det jag vill göra men inte får till är att för varje nyhet skriva ut kategorirubriken 1 gång endast... Så här ser det ut....: ================================== <% strSql = "SELECT kategori, id FROM kategorier" Set rsCat = Connect.Execute(strSql) %> <table border="0" width="150" cellpadding="2" cellspacing="0"> <%Do While Not rsCat.EOF %> <tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr> <% strSql = "SELECT id, rubrik, kategori, ingress FROM nyheter WHERE visa=1 and kategori_id = " & rsCat("id") Set rsNews = Connect.Execute(strSql) %> <% Do While Not rsNews.EOF %> <% If (rsNews("id") <> "") Then 'Response.write rsCat("Kategori") Response.write"<tr><th>" & rsCat("kategori") & "</tr></th>" Response.Write "<tr><td class=statusLeftRight><b>" & rsNews("Rubrik") & "</b>" & " </td></tr><tr><td class=statusBottomandright>" & rsNews("ingress") & "<br>" &_ "<a href=news/nyhet.asp?id=" & rsNews("id") & "&kategori=" & rsNews("kategori") & ">" & "Läs mer</a></td></tr>" 'Response.write "<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>" End if%> <% rsNews.MoveNext Loop %> <% rsNews.Close Set rsNews = Nothing RsCat.MoveNext Loop rsCat.Close Set rsCat = Nothing %> </table> ================================= Är det nån som kan hjälp till??? MVH Erik |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2002-09-18
Ort: Stockholm
Inlägg: 4 733
Lösningar: 50 |
Välkommen till wF!!
Oj, din kod verkar lite grötig och ineffektiv.. Ett tips så länge: använd kod-taggen här på wF, samt skippa alla dina <% och %>. Kod:
<%
strSql = "SELECT kategori, id FROM kategorier"
Set rsCat = Connect.Execute(strSql)
%>
<table border="0" width="150" cellpadding="2" cellspacing="0">
<%Do While Not rsCat.EOF %>
<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>
<%
strSql = "SELECT id, rubrik, kategori, ingress FROM nyheter WHERE visa=1 and kategori_id = " & rsCat("id")
Set rsNews = Connect.Execute(strSql)
Do While Not rsNews.EOF
If (rsNews("id") <> "") Then
'Response.write rsCat("Kategori")
Response.write"<tr><th>" & rsCat("kategori") & "</tr></th>"
Response.Write "<tr><td class=statusLeftRight><b>" & rsNews("Rubrik") & "</b>" & " </td></tr><tr><td class=statusBottomandright>" & rsNews("ingress") & "<br>" &_
"<a href=news/nyhet.asp?id=" & rsNews("id") & "&kategori=" & rsNews("kategori") & ">" & "Läs mer</a></td></tr>"
'Response.write "<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>"
End if
rsNews.MoveNext
Loop
rsNews.Close
Set rsNews = Nothing
RsCat.MoveNext
Loop
rsCat.Close
Set rsCat = Nothing
%>
</table>
|
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2002-09-18
Ort: Stockholm
Inlägg: 4 733
Lösningar: 50 |
Kanske denna kod blir bättre:
Kod:
<%
Dim Recs, i, head
Recs = RsNews.Recordcount
For i = 1 To Recs
If (rsNews("id") <> "") Then
'Response.write rsCat("Kategori")
Response.write"<tr><th>" & rsCat("kategori") & "</tr></th>"
If i = 1 Then
Head = RsNews("Rubrik")
Else Head = ""
End If
Response.Write "<tr><td class=statusLeftRight><b>" & Head & "</b>" & " </td></tr><tr><td class=statusBottomandright>" & rsNews("ingress") & "<br>" &_
"<a href=news/nyhet.asp?id=" & rsNews("id") & "&kategori=" & rsNews("kategori") & ">" & "Läs mer</a></td></tr>"
'Response.write "<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>"
End if
Next
%>
Senast redigerad av m_soderlund, 2003-05-14 klockan 11:37 |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
För det första, tack för tipsen...;-)
Jag är som sagt ny så det tar lite tid innan man kört in sig på alla finesser... Nja jag får lite fel: Object required: '' På raden: Recs = Rs.Recordcount Vad saknas...? |
|
|
|
|
|
#5 |
|
Moderator
Registrerad: 2000-08-20
Ort: Kungälv (Göteborg)
Inlägg: 3 519
Lösningar: 45 |
Set Rs = Server.CreateObject("ADODB.Recordset")
Innan sql satsen tror jag |
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
Det stämmer nog men nu får jag: Åtgärden är inte tillåten när objektet är stängt. På raden:
Kod:
Recs = Rs.Recordcount |
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2003-02-03
Ort: Sabang Beach, Puerto Galera, Philippines
Inlägg: 4 457
Lösningar: 73 |
Men har du inte stängt ditt RS innan då?
Kolla så du inte har ngra: Kod:
rs = NOTHING rs = "" |
|
|
|
|
|
#8 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
Nope inget sånt... Jag skickar koden igen så får vi se om du hittar nåt....
Kod:
<%
strSql = "SELECT kategori, id FROM kategorier"
Set rsCat = Connect.Execute(strSql)
%>
<table border="0" width="150" cellpadding="2" cellspacing="0">
<%
Do While Not rsCat.EOF
'Response.write rsCat("kategori")
%>
<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>
<%
Set Rs = Server.CreateObject("ADODB.Recordset")
strSql = "SELECT id, rubrik, kategori, ingress FROM nyheter WHERE visa=1 and kategori_id = " & rsCat("id")
Set rsNews = Connect.Execute(strSql)
%>
<%
Dim Recs, i, head
Recs = Rs.Recordcount
For i = 1 To Recs
If (rsNews("id") <> "") Then
'Response.write rsCat("Kategori")
Response.write"<tr><th>" & rsCat("kategori") & "</tr></th>"
If i = 1 Then
Head = RsNews("Rubrik")
Else Head = "Inget"
End If
Response.Write "<tr><td class=statusLeftRight><b>" & Head & "</b>" & " </td></tr><tr><td class=statusBottomandright>" & rsNews("ingress") & "<br>" &_
"<a href=news/nyhet.asp?id=" & rsNews("id") & "&kategori=" & rsNews("kategori") & ">" & "Läs mer</a></td></tr>"
End if
Next
%>
<%
rsNews.Close
Set rsNews = Nothing
RsCat.MoveNext
Loop
rsCat.Close
Set rsCat = Nothing
%>
</table>
|
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
Ja visst, naturligtvis... ;-)
Men då får jag en tom sida..... |
|
|
|
|
|
#11 |
|
Medlem
Registrerad: 2002-09-18
Ort: Stockholm
Inlägg: 4 733
Lösningar: 50 |
Så här kanske:
Kod:
<%
Dim Recs, i, head
Recs = RsNews.Recordcount
Do While Not rsNews.EOF
For i = 1 To Recs
If (rsNews("id") <> "") Then
'Response.write rsCat("Kategori")
Response.write"<tr><th>" & rsCat("kategori") & "</tr></th>"
If i = 1 Then
Head = RsNews("Rubrik")
Else Head = ""
End If
Response.Write "<tr><td class=statusLeftRight><b>" & Head & "</b>" & " </td></tr><tr><td class=statusBottomandright>" & rsNews("ingress") & "<br>" &_
"<a href=news/nyhet.asp?id=" & rsNews("id") & "&kategori=" & rsNews("kategori") & ">" & "Läs mer</a></td></tr>"
'Response.write "<tr><td><img src=../images/spacer.gif width=1 height=1 border=0 alt=></td></tr>"
End if
Next
RsNews.Movenext
Loop
%>
|
|
|
|
|
|
#12 |
|
Medlem
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0 |
Nope samma resultat. Tom sida...
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|