webForumDet fria alternativet

Nytt inlägg ny bild

ASP

6 svar · 490 visningar · startad av Biasse

Medlem sedan aug. 2003480 inlägg
Frågan#1

Jag har nått kod fel men finner det inte. Jag har sparat topic_id, user_id, category_id i en tabellen new_post_last som uppdateras varje gång en user läser ett inlägg. När jag jämför detta på kartegori sidan för att visa rätt bild får jag det bara att fungera på översta kategorin.

Vad är fel för att frågan ska loopa med alla kategorierna?

Lite mycket kod men :)

<%
Set rstCategorys = Connect.Execute("SELECT * FROM forum_categorys WHERE secure = '"& 1 &"' ORDER BY ordning")

secure = rstCategorys.Fields(4).Value
niva = request.cookies("niva")

If rstCategorys.EOF Then
%>

<table>

  <tr>
    <td>Inga karegorier är skapade än..</td>
  </tr>
  
</table>  
  
<%
Else		
Do Until rstCategorys.Eof
%>  

<table>
		 
  <tr>
  
<%
'''''''Kollar om alla inlägg är lästa i en kategori'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

katId = rstCategorys.Fields(0).Value
Set lastKoll = Connect.Execute("SELECT * FROM forum_posts ORDER BY post_id")

posten = lastKoll.Fields(0).Value
userID = Request.Cookies("userID")

Set lastKoll2 = Connect.Execute("SELECT * FROM new_post_last WHERE ref_topic_id = '"& posten &"' AND ref_kat = '"& katId &"' AND ref_user_id = '"& userID &"'")

If NOT lastKoll2.EOF Then

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
%>
   
    <td><img src="image/no_new_posts_icon.gif"></td>

<%Else%>

    <td><img src="image/new_posts_icon.gif"></td>

<%End If%>
    
	<td><a href ="ask_visa_kategorier.asp?category_id=<%= rstCategorys.Fields(0).Value%>"><%= Server.HTMLEncode(rstCategorys.Fields(3).Value)%></a>-<%=rstCategorys("info")%></td>
    
<%
SQL = "SELECT TOP 1 * FROM forum_posts WHERE post_referer = 0 AND post_category = "& rstCategorys.Fields(0).Value &" ORDER BY post_id DESC"

intAntalTradar = Connect.Execute("SELECT COUNT(post_headline) FROM forum_posts WHERE post_referer = 0 AND post_category = " & rstCategorys.Fields(0).Value & "").Fields(0).Value
intAntalInlagg = Connect.Execute("SELECT SUM(post_answers) FROM forum_posts WHERE post_category = " & rstCategorys.Fields(0).Value & "").Fields(0).Value

Set rstPosts = objCon.Execute(SQL)
If rstPosts.EOF Then		
%>    

    <td>-</td>
    <td>-</td>
    <td>-</td>
  
<%
Else
Do Until rstPosts.EOF
%>
 
    <td><%=intAntalTradar%></td>
    <td><%=intAntalInlagg%></td>
    <td><%= formatDateTime(rstPosts.Fields(2).Value,1) %><br>Kl.<%= formatDateTime(rstPosts.Fields(2).Value,4) %></td>
  </tr>

<%
rstPosts.Movenext
Loop
rstPosts.Close
Set rstPosts = Nothing
End If
			 
rstCategorys.Movenext
Loop
rstCategorys.Close
Set rstCategorys = Nothing

lastKoll2.Close
Set lastKoll2 = Nothing
%>
Medlem sedan aug. 2003480 inlägg
#2

Inegn som ser nått fel? Det verkar fungera och skifta bild på den kategori som hamnar överst men de andra som loopas ut har samma bild hela tiden fast inlägg är lästa.

Medlem sedan aug. 2003480 inlägg
#3

Jag hoppas detta är vad jag sökt men stötte på nytt problem. Skapar man en ny kategori blir ju "topic = lastKoll.Fields(0).Value" ett tomt värde och det kräver ett värde. Hur löser man det på bästa sätt??

<%
'''''''Kollar om olästa inlägg finns i kategorin''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Set lastKoll = Connect.Execute("SELECT * FROM forum_posts WHERE post_category = "& katId &" ORDER BY post_id DESC")

topic = lastKoll.Fields(0).Value
userID = Request.Cookies("userID")

Set lastKoll2 = Connect.Execute("SELECT * FROM new_post_last WHERE ref_user_id = '"& userID &"' AND ref_topic_id = '"& topic &"' AND ref_kat = '"& katId &"'")

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If lastKoll2.EOF Then
%>
  
    <td><img border="0" src="image/new_posts_icon.gif"></td>

<%Else%>

    <td><img border="0" src="image/no_new_posts_icon.gif"></td>

<%End If%>
Medlem sedan juni 20019 519 inlägg
#4

Eftersom ditt Recordset kan retunera 0 rader så måste du även där kolla om den är EOF eller inte.

Medlem sedan aug. 2003480 inlägg
#5

Men vad skapar man istället i sånna här fall..

Set lastKoll = Connect.Execute("SELECT * FROM forum_posts WHERE post_category = "& katId &" ORDER BY post_id DESC")

If lastKoll.EOF Then
??????
Else
posten = lastKoll.Fields(0).Value
End If
Medlem sedan juni 20019 519 inlägg
#6

vad som helst väl? Sätt det till något som aldrig kommer träffa på: ref_topic_id (-1 kan ju vara ett alternativ kanske?) Så kommer den andra frågan bli EOF och visa "<td><img border="0" src="image/new_posts_icon.gif"></td>
"

Medlem sedan aug. 2003480 inlägg
#7

Lösningen blev såhär :)

<%
'''''''Kollar om olästa inlägg finns i kategorin''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Set lastKoll = Connect.Execute("SELECT * FROM forum_posts WHERE post_category = "& rstCategorys.Fields(0).Value &" ORDER BY post_id")

If Not lastKoll.EOF Then
posten = lastKoll.Fields(0).Value 
Else
posten = 0
End If

userID = Request.Cookies("userID")

Set lastKoll2 = Connect.Execute("SELECT * FROM new_post_last WHERE ref_user_id = '"& userID &"' AND ref_topic_id = '"& posten &"' AND ref_kat = '"& rstCategorys.Fields(0).Value &"'")

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Not lastKoll2.EOF Then
%>
  
    <td class="inlagg" align="center" width="30" style="border-left-width: 1px;border-bottom-width: 1px"><img border="0" src="image/no_new_posts_icon.gif"></td>

<%Else%>

    <td class="inlagg" align="center" width="30" style="border-left-width: 1px;border-bottom-width: 1px"><img border="0" src="image/new_posts_icon.gif"></td>

<%End If%>
272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)