Avatar billede tblaster Nybegynder
19. juni 2002 - 18:50 Der er 5 kommentarer og
1 løsning

Nyhedssystem

Hejsa

Jeg har et nyhedssystem som jeg lige skal have ændret lidt på. Her er min kode som jeg bruge til at hive nyhederne frem:

________________________________________________________

<%
' Connection til database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("db.mdb")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
   
' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
    Sql = "SELECT * FROM nyheder ORDER BY dato DESC"
    Set rs =  Conn.Execute(Sql)
%>

<% Do While Not rs.EOF
SQL2 = "select count(*) as antal from kommentarer WHERE nyhedsId = " & rs("id")
Set TheCount = Conn.Execute(Sql2)   
antal = TheCount("antal")
%>
<BODY text=#000000 vLink=#000000 aLink=#000000 link=#000000 rightMargin=0>
                  <TABLE cellSpacing=0 cellPadding=0 width=584 border=0>
                    <TBODY>
                    <TR>
                      <TD width=582 bgColor=#000000><IMG height=1 alt=""
                        src="../pics/Design/blank(1).gif"
                        width=582 border=0><BR></TD>
                      <TD width=2 bgColor=#ffffff><IMG height=1 alt=""
                        src="../pics/Design/blank(1).gif"
                        width=2 border=0><BR></TD></TR></TBODY></TABLE>
                  <TABLE cellSpacing=0 cellPadding=0 width=584 border=0 height="70">
                    <TBODY>
                    <TR>
                      <TD vAlign=top align=left width=1 bgColor=#000000
                      height=27><IMG height=25 alt="" src="../pics/Design/blank.gif"
                        width=1 border=0><BR></TD>
                      <TD vAlign=top align=left width=5 bgColor=#608EC6
                      height=27><BR></TD>
                      <TD align=left width=385 bgColor=#608ec6
                      height=27><strong><font face="Arial" color="#FFFFFF" size="3">
<%=rs("title")%>
            </font></strong><BR></TD>
                      <TD align=left width=180 bgColor=#608ec6
                      height=27>
                      <p align="right"><font size="2" face="Times New Roman" color="#FFFFFF">
<%= FormatDateTime(rs("dato"),1)%>
              </font></TD>
                      <TD vAlign=top align=left width=8
                      background=../pics/Design/content_right_top.gif height=27><BR></TD></TR>
                    <TR>
                      <TD vAlign=top align=left width=1 bgColor=#000000 height="17"><IMG
                        height=1 alt="" src="../pics/Design/black.gif" width=1
                      border=0></TD>
                      <TD vAlign=top align=left width=10 bgColor=#CFDFFC height="17">&nbsp;</TD>
                      <TD vAlign=top align=left width=565 bgColor=#CFDFFC
                      height=17 colspan="2"><br>
<%=rs("nyhed")%><br><br><a href="mailto:<%=rs("Email")%>"><%=rs("forfatter")%></a>
            <TD vAlign=top align=left width=8
                      background=../pics/Design/content_right_middle.gif
                        rowSpan=2 height="43">&nbsp;</TD></TR>
                    <TR>
                      <TD vAlign=bottom align=left width=564 bgColor=#CFDFFC
                      colSpan=4 height="26"><IMG height=26 alt=""
                        src="../pics/Design/newsitem_left_bottom.gif" width=56
                      border=0></TD></TR></TBODY></TABLE>
                  <TABLE cellSpacing=0 cellPadding=0 width=584 border=0>
                    <TBODY>
                    <TR>
                      <TD width=26 bgColor=#ffffff><IMG height=15 alt=""
                        src="../pics/Design/content_left_bottom.gif"
                        width=26 border=0><BR></TD>
                      <TD width=554 bgColor=#FFFFFF><IMG height=15 alt=""
                        src="../pics/Design/content_bottom.gif"
                        width=558 border=0><BR></TD>
                      <TD width=2 bgColor=#ffffff><IMG height=1 alt=""
                        src="../pics/Design/blank(1).gif"
                        width=2 border=0><BR></TD></TR></TBODY></TABLE> <br>
<%
rs.MoveNext
Loop
%>

_______________________________________________________


Nu vil jeg gerne have lavet så siden viser nyhederne med et par krav:
1. Nyheder der er over 14 dage gamle vises ikke.
2. Dog skal der altid vises de sidste 6 nyheder.

Det vil altså sige at alle nyheder der er under 14 dage gammel skal vises også selvom der er 123 stk! Og sammentidig skal der altid vises 6 nyheder selvom at de måske er flere år gamle! (Lidt overdrevet men det er da til at forstå :-) 

Håber der er en der kan (gider) hjælpe :-)
Avatar billede kasper_14 Nybegynder
19. juni 2002 - 19:05 #1
dine to punkter modsiger jo hinanden, men du skal bruge dette, da du jo altid vil vise de 6 nyeste nyheder altså dato DESC...;

SELECT top 6 * FROM nyheder ORDER BY dato DESC
Avatar billede medievil Nybegynder
19. juni 2002 - 19:49 #2
For at vise de sidste 6 nyheder skal du bruge:
<%
count = 6
While not rs.eof and count > 0
count = count -1
%>
Indsættes nedeunder database forbindelsen !!!
Avatar billede eagleeye Praktikant
19. juni 2002 - 19:50 #3
Ja det kan man godt, men man skal så lave en som tæller antallet af nye nyhder og hvis der er flere end 6 så det en SQL og hvis det er mindre end 6 nyhder er det en anden SQL man vælger nyhder med. Eks:

'Udregn datoen for 14 dage siden
datoStr = dateAdd("d",-14,date())
datoStr = year(datoStr) & "-" & month(datoStr) & "-" & day(datoStr)
'SQL sætning som tæller antal af nye nyhder
strSQL = "SELECT Count(*) As antal FROM nyheder WHERE dato >= #" & datoStr & "#"
set rs = conn.execute(strSQL)
if Cint(rs("antal")) >= 6 then
  'Flere end 6 nyhder er 14 dage gammel, vælg alle nyher under 14 dage gammel
  strSQL = "SELECT * FROM nyheder WHERE dato >= #" & datoStr & "# ORDER BY Dato DESC"
else
  'Mindre end 6 nyher er 14 dage gammel, vælg 6 nyhder ialt
  strSQL = "SELECT TOP 6 * FROM nyheder ORDER BY Dato DESC"
end if
'Hent nyher
set rs = conn.execute(strSQL)
do while not rs.EOF
  'udskriv nyher her, du kan bare bruge dit script til det. 
  rs.MoveNext 
loop
conn.Close
Avatar billede medievil Nybegynder
19. juni 2002 - 19:51 #4
Her er hele koden:
<%
' Connection til database
    Set Conn = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("db.mdb")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
   
' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
    Sql = "SELECT * FROM nyheder ORDER BY id DESC"
    Set rs =  Conn.Execute(Sql)

count = 6
While not rs.eof and count > 0
count = count -1
%>

Håber det virker ;o)
Avatar billede medievil Nybegynder
19. juni 2002 - 19:57 #5
Skal den hente dem der er 14 dage gamle ELLER de 6 nyeste???
Avatar billede tblaster Nybegynder
21. juni 2002 - 13:19 #6
Thx for hjælpen :-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester