webForumDet fria alternativet
Logga in / Bli medlem

nyhets script

ASP

5 svar · 277 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Trådstart#1

Jag använder Björn Lindströms nyhets script, som går ut på att man matar in en nyhet i ett formulär och det hamnar på en index sida, men problemet är att man kan mata hur många nyheter som helst och sidan komme rtat bli hur lång som helst om man har bra med nyheter, så jag undrar ifall man kunde begränsa index sidan så att den bara visade 1 nyhet den man senast knappade in och när man knappar in en till nyhet så hmnar den som var där innan i ett arkiv...

Så här ser indexsidan ut:

	<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb"))

	'============== FUNKTION FÖR LÅNGA RADER==============
	function doIt(textSomSkaFixas)
	arrText = split(textSomSkaFixas, " ")
	for i = 0 To uBound(arrText)
	if Len(arrText(i)) > 60 then
	newText = newText & " " & Left(arrText(i), 60)
	'newText = newText & " " & Right(arrText(i), Len(arrText(i)-60))
	newText = newText & " " & Right(arrText(i), Len(arrText(i))-60)
	else
	newText = newText & " " & arrText(i)
	end if
	next
	doIt = newText
	end function
	%>

<%
	Dim antal
	antal = 0

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Visa = "SELECT * FROM nyheter ORDER BY Id DESC"
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
	Do Until RecSet.EOF %>

	<%	
	antal = antal + 1
	RecSet.MoveNext
	Loop
	RecSet.Close
	Connect.Close
	Set Connect = Nothing
	%>

jag tog endast med asp kodningen lämnade html kodningen...

och så här ser sidan jag skulle vilja använda som arkiv...

<%
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db.mdb"))
	%>
<%
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	Visa = "SELECT * FROM nyheter ORDER BY ID DESC"
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
	Do Until RecSet.EOF
	%>
<div align="center">
  <center>
  <table border="0" width="500" cellspacing="1">
    <tr>
      <td width="100%">  <%=RecSet("datum")%> - <a href="#" onClick="centerpopup('visa_alla_rubriker_2.asp?nyhetsID=<% =RecSet("ID") %>',500,400); return false;"><% =left(RecSet("Rubrik"),100) %></a>

<%	
	RecSet.MoveNext
	Loop
	RecSet.Close
	Connect.Close
	Set Connect = Nothing
	%>

Jag hoppas verkligen ngn kan hjälpa mig...

Medlem sedan feb. 20012 412 inlägg
#2

Hej!

Använd följande tillägg i din Visningsfil för att visa senaste nyhet.

Access mfl


Visa = "SELECT [b]TOP 1[/b] FROM nyheter ORDER BY Id DESC"

eller

MySQL bla


Visa = "SELECT * FROM nyheter ORDER BY Id DESC [b]LIMIT 1[/b]"

r: De andra posterna ligger ju kvar i databasen ändå och "arkiveras".

mvh Jörgen

Medlem sedan dec. 20001 626 inlägg
#3

Jag använder access och jag fick detta fel meddelande när jag skrev in Top 1 som du sa:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

[Microsoft][Drivrutin för ODBC Microsoft Access] SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.

/asp/nyheter/nyheter/nyheter.asp, rad 86

Medlem sedan dec. 200012 464 inlägg
#4
Visa = "SELECT TOP 1 * FROM nyheter ORDER BY Id DESC"
Medlem sedan feb. 20012 412 inlägg
#5

Ooop, försvann visst ett * i kopieringen. :(

mvh Jörgen

Medlem sedan dec. 20001 626 inlägg
#6

Tackar det fungerade utomordentligt!!!

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)