webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2003-05-14, 08:42   #1
ENo
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&auml;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
ENo besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 09:02   #2
m_soderlund
Medlem
 
m_soderlunds avatar
 
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>
m_soderlund besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 09:10   #3
m_soderlund
Medlem
 
m_soderlunds avatar
 
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
%>
Den ska in mellan Set rsNews = Connect.Execute(strSql) och RsNews.Close. Hoppas att det fungerar..


Senast redigerad av m_soderlund, 2003-05-14 klockan 11:37
m_soderlund besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 09:49   #4
ENo
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...?
ENo besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 10:19   #5
Nickemannen
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
Nickemannen besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 10:41   #6
ENo
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
ENo besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 11:01   #7
MickeA.com
Medlem
 
MickeA.coms avatar
 
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 = ""
Eller liknande innan...
__________________
//Micke Andersson
Hemsida | Kontakta
----------------------
"Det är svårt att vara ödmjuk när man vet att man är bäst".
MickeA.com besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 11:19   #8
ENo
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>
ENo besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 11:36   #9
m_soderlund
Medlem
 
m_soderlunds avatar
 
Registrerad: 2002-09-18
Ort: Stockholm
Inlägg: 4 733
Lösningar: 50
Ooops, det ska vara:
Kod:
RsNews.Recordcount
Du har ju inte nån variabel som heter Rs..

Klick. Den röda koden..
m_soderlund besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 11:44   #10
ENo
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.....
ENo besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 11:46   #11
m_soderlund
Medlem
 
m_soderlunds avatar
 
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
%>
Med reservation för att koden är ganska slarvig ändå..
m_soderlund besöker inte forumet just nu   Svara med citat
Äldre 2003-05-14, 12:35   #12
ENo
Medlem
 
Registrerad: 2003-05-14
Ort: Täby
Inlägg: 24
Lösningar: 0
Nope samma resultat. Tom sida...
ENo besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 15:51.


Powered by: vBulletin Version 3.8.6
Copyright © webForum