webForumDet fria alternativet

Ange vilken sida!

ASP

5 svar · 218 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Jag har en sökfunktion och när alla sökresultat listas vill jag att den ska kolla vilken sida just det inlägget har i tråden.

Testa å sök på Chippi här: http://forum.gruvsjo.com/sok.asp

10 av inläggen finns då på sidan 2.

Hur gör jag? Denna kod är den som visar rubrikerna.

<tr height="20" bgcolor="<%=Farg%>">
<td><b>»</b>
<a href="forum.asp?id=<%If RecSet("uid") = "0" Then%> <%=RecSet("id")%>#<%=RecSet("id")%><%Else%><%=RecSet("uid")%>#<%=RecSet("id")%><%End If%>"><%=Left(Subject,70)%></a>
</td>
</tr>

Medlem sedan dec. 200012 464 inlägg
#2

Hur vet du att ett inlägg hamnar på sida 2? Har du något sekvensnummer (inom tråden) för varje inlägg?

Annars så måste du räkna ut hur många inlägg det finns som är gjorda innan det aktuella och utifrån det beräkna sidnummer.

Medlem sedan dec. 20011 860 inlägg
#3

Jag måste räkna ut det men Count(*) på andra ställen men vet inte riktigt hur jag gör det nu i sökresultaten!

Medlem sedan dec. 200012 464 inlägg
#4

Ok, då borde du i din sökfråga kunna lägga till en beräkning för att få fram inläggets ordningsnummer


select posts.* , (select count(*) from posts
                            where id >= p.uid
                                 and id < p.id 
                                 and uid = p.uid ) as odinal
 from posts as p 
where message like '%searchWord%' 
      or title like '%searchWord%'

Jag gissar lite men jag tänker att du har ungefär följande tabellstruktur

posts
--------
id -- räknare
uid -- id för första inlägget i en tråd
message -- inläggstext
title -- titel för inlägget

Medlem sedan dec. 20011 860 inlägg
#5

Ska testa och återkommer!

Medlem sedan dec. 20011 860 inlägg
#6

Min SQL ser nu ut så här:

   SQL = "SELECT * FROM forum WHERE" 
   varSearchWord = Split(sokord) 
   For N = 0 TO UBound(varSearchWord)  
       SQL = SQL & " " & subj & " Like '%" & varSearchWord(N) & "%' And" 
   Next 'N 
   '## -- ta bort det sista , i strängen. annars blir det fel vid exekveringen -- 
   SQL = Left(SQL,Len(SQL) - 3) 
   SQL = SQL & " ORDER BY Id " & sort

Hur lägger jag in din kod? Eller fattar jag helt fel nu?

265 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)