webForumDet fria alternativet

Sortera efter datum

6 svar · 248 visningar · startad av Ceeron

CeeronMedlem sedan aug. 2000389 inlägg
#1

Testade o säka lite men hittade inte...

Jag har en db med massa nyheter
Skulle vilja loopa upp dom så att om dagen visas o sedan alla nyheter som skrivits den dagen.

https://www.theinclan.com
för exempel på hur jag menar

alltså:

datumet
nyhet1
nyhet2

datum2
nyhet3

att nyheterna lägger sig under datumet...

Hoppas att någon förstår va jag menar o kan hjälpa till med detta ;)

LarsGMedlem sedan dec. 200012 465 inlägg
#2
set rs = connect.execute("select * from news order by newsDate desc")
pDate = ""
while not rs.eof
   if pdate = "" or cdate(pdate) <> cdate(rs("newsDate")) then
     pdate = cdate(rs("newDate"))
     response.write pdate & "<br>"
  end if
  response.write rs("news") & "<br>"
  rs.movenext
wend

i princip alltså

CeeronMedlem sedan aug. 2000389 inlägg
#3

måste erkänna att jag fattade noll där ;)

detta e vad jag har nu:

tabellen innehåller:
newsID, headline, news(nyheten alltså), author, newsDate

<%
	lcid=2057

	Function FixaBR(str)
	  FixaBR = Replace(str, vbCrLf, "<br>" & vbCrLf)
	End function

	Set RS = Server.CreateObject("ADODB.Recordset")
	SQL = "SELECT * FROM news ORDER BY newsDate DESC"
	RS.Open SQL, Connect, 3, 3

	Do Until RS.EOF
%>

<%=RS("headline")%> posted <%=RS("newsDate")%>
 by <%=RS("author")%>
<br />
<%=delaText(FixaBR(RS("news")))%> <br /><br />

<%
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
%>
LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jag jämför om nästa nyhet har samma datum som föregående nyhet. Om det är olika så skriver man ut datumet. Det fungerar eftersom nyheterna kommer i datumordning.

CeeronMedlem sedan aug. 2000389 inlägg
#5

Juste va e "wend" som du skrivit ut sist av det du skrev?

LarsGMedlem sedan dec. 200012 465 inlägg
#6

wend avslutar en while på samma sätt som loop avslutar en do until

CeeronMedlem sedan aug. 2000389 inlägg
#7

Eftersom mitt datumfält var inlaggt med Now så funkade inte det du skrev o eftersom jag inte e så duktig la jag bara till en till tabell som bara sparade datumet.

Resultatet:


<!-- #include file="delaText.inc" -->
<%
	lcid=2057

	Function FixaBR(str)
	  FixaBR = Replace(str, vbCrLf, "<br>" & vbCrLf)
	End function

	Set RS = Server.CreateObject("ADODB.Recordset")
	SQL = "SELECT * FROM news ORDER BY newsDate DESC"
	RS.Open SQL, Connect, 3, 3

	pDate = "0"
	Do Until RS.EOF
   	If pDate = "0" or cdate(pDate) <> cdate(RS("showDate")) Then
     	pDate = cdate(RS("showDate"))
%>

	<tr><td class="datum"><%=pDate%></td></tr>

	<% end if %>

	<tr><td class="news"><%=RS("news")%></td></tr>
<%
  	rs.movenext
	Loop

	RS.Close
	Set RS = Nothing
%>

Allt funkar nu =)
Tackar

132 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
129 ms — hämta tråd, inlägg och bilagor (db)