05. august 2004 - 23:40
Der er
22 kommentarer og 1 løsning
Udtræk af eks top 4-10?
Hejsa! Jeg er ved at lave et nyhedsscript - og det skal fungere på den måde, at der på hjemmesiden bliver vist eks. de tre nyeste nyheder (top 3) - og derefter en liste af nyhedsoverskrifter fra eks. den 4. nyeste til den 13. nyeste! Er der en simpel og hurtig måde at lave det på?
Annonceindlæg fra Infor
05. august 2004 - 23:41
#1
SELECT top 4 * FROM
05. august 2004 - 23:41
#2
var vidst lidt hurtig der...
05. august 2004 - 23:44
#3
noget med SELECT * FROM tabel WHERE id BETWEEN 4 AND 13 desc ved ikke om man kan det
05. august 2004 - 23:48
#4
Tror jeg ikke helt! F.eks. så har den nyeste nyhed id nummer 821 - næstnyeste 820 - osv... men det ændrer sig jo konstant! Jeg kan vel gå ind og trække det højeste ID, trække tre fra - og så lave en løkke, der kører 10 gange... eksempelvis! Men kan det ikke gøres lettere?
05. august 2004 - 23:57
#5
Men lige for at lave det lidt sjovere - så skal der skal en af kollonerne opfylde et af tre kriterier!
06. august 2004 - 00:05
#6
SELECT * FROM tabel ORDER BY id DESC LIMIT 0,5 Giver dig de 5 nyeste.
06. august 2004 - 00:10
#7
SELECT * FROM tabel ORDER BY id DESC LIMIT 5,5 Giver dig de 5 næste.
06. august 2004 - 00:11
#8
strSQL = "Select * FROM nyheder where (art = 'Fodbold' OR 'Generel') ORDER BY id DESC LIMIT 4,13" Så får jeg følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error in ORDER BY clause.
06. august 2004 - 00:15
#9
strSQL = "Select * FROM nyheder where art = 'Fodbold' OR art = 'Generel' ORDER BY id DESC LIMIT 4,8"
06. august 2004 - 00:20
#10
Nope - samme fejl... (art = 'Fodbold' OR 'Generel') <- bruger jeg, hvor jeg henter top tre ud! Og den virker, så det er ikke det!
06. august 2004 - 00:25
#11
Det er mig der sover, du kan ikke bruge limit i access det er en ren MySQL-syntax
06. august 2004 - 00:27
#12
Kan man ikke välge top 13 og så lägge den ind i en loop á la: while (rs.BOF + 3)
06. august 2004 - 00:40
#13
Hvordan??? <% strSQL = "Select TOP 13 * FROM nyheder where (art = 'Fodbold' OR 'Generel' OR 'AaB-Netavis') ORDER BY id DESC" Set rs = Conn.Execute(strSQL) if rs.eof then response.write "<tr><td align=right bgcolor=#FFFFFF><font face=verdana size=-2><b>Ingen nyheder</b></font></td></tr>" else Do While (rs.BOF + 3) Response.write "<font face=Verdana size=-2><b> <img SRC=pics/knap2.gif> " & rs("overskrift") & "</b></font>" rs.MoveNext Loop end if %>
06. august 2004 - 00:41
#14
Ved ikke om det virker, bare et skud i tågen.
06. august 2004 - 00:45
#15
Med ovenstående script viser den alle TOP 13 nyheder... og kommer sluttelig med følgende fejl: error '80020009' Exception occurred. /nyside/Default.asp, line 265 (Linie 265 er den nederste response.write linie)
06. august 2004 - 00:48
#16
do while not rs.eof or (rs.bof + 3)
06. august 2004 - 00:52
#17
Kan ikke tänke klart nu, mine öjne bliver holdt oppe af tändstikker. Men i värste fald kan man lägge den ind i en loop og så lade väre med at udskrive de tre förste. Men kan ikke lige omstille hjernen til ASP lige nu. I'll be back tomorrow ;o)
06. august 2004 - 00:53
#18
Der fremkommer samme fejl! Jeg skulle faktisk til at sige det samme... linserne er smidt, så jeg kan ikke engang se skærmen ;)
06. august 2004 - 01:06
#19
Tja, jeg havde lavet en sql-statement ala denne: Select TOP 13 * FROM nyheder where (art = 'Fodbold' OR 'Generel' OR 'AaB-Netavis') ORDER BY id DESC og så havde jeg lavet sorteringen i ASP'en: i = 0 do while not rs.eof { if(i>3) then { udskriv nyheden på en måde } else { udskriv nyheden på en anden måde } i=i+1 } Mit asp er lidt rustent, men forhåbentlig giver det mening?
06. august 2004 - 09:31
#20
<% strSQL = "Select top 13 * from nyheder where (art = 'Fodbold' OR 'Generel' OR 'AaB-Netavis') order by id desc" Set rs = Conn.Execute(strSQL) i = 0 Do While Not rs.EOF if (i<3) then Kortnyhed = Left(rs("nyhed"), 300) Response.write "<tr><td width=100% BGCOLOR=#DE0029><font face=Verdana color=#FFFFFF size=-2><b> <img SRC=pics/knap2.gif> " & rs("overskrift")& "</b></font></td></tr>" Response.write "<TR><TD><font face=verdana size=-2><i>Af " & rs("skrevetaf") & " den " & rs("dato") & "</i><br>" & Kortnyhed & "...<br><b><a href=visnyhed.asp?id=" & rs("id") & ">Læs mere...</a><b><p></font></td></TR>" else Response.write "<TR><TD><font face=Verdana size=-2><b> <img SRC=pics/knap2.gif> " & rs("overskrift") & "</b></font></TD></TR>" i=i+1 end if rs.MoveNext LOOP %> Så smider den alle 13 nyheder ud efter det første udsagn - og ingen, hvor det bare er overskriften!
06. august 2004 - 09:57
#21
Smed i=i+1 op lige efter If - sætningen, så virker det! Smid et svar - så får du pointene!
06. august 2004 - 10:26
#22
svar ;)
06. august 2004 - 10:33
#23
Og mange tak for hjælpen!!!
Kurser inden for grundlæggende programmering