Om du lagrar datum för när någon skrev ett inlägg senast i databasen och fältet för datum heter Datum, så exekverar du en SQL-fråga som ser ut så här:
SELECT Namn, Meddelande, Datum FROM tabell ORDER BY Datum DESC
Visa oss mer kod.
9 svar · 481 visningar · startad av eko
Tjao.
Jag har sökt här i forumet men hittar ingen hjälp på detta.
Hur gör jag för att skriva ut det senaste inlägget i min gästbok på min förstasida?
Ifrån guestbook.mdb vill jag skriva ut Namn och Meddelande!
/ Tack
Om du lagrar datum för när någon skrev ett inlägg senast i databasen och fältet för datum heter Datum, så exekverar du en SQL-fråga som ser ut så här:
SELECT Namn, Meddelande, Datum FROM tabell ORDER BY Datum DESC
Visa oss mer kod.
Skriv en SQLfråga mon din DB sortera inläggen efter datum och sortera dem fallande ta sedan det första inlägget och skriv ut det på första sidan... Eller skapa en Applications variabel som innehåller det första inlägget om du har många besök...
2:a jag började skriva men hamnade i telefonen :r
Ok, här är koden för guestbook.asp
Databasen finns på db/guestbook.mdb
På min startsida skulle jag vilja att det står:
Senaste inlägget i gästboken skrevs utav "Namn" <br><br>
"Meddelande"
<%Response.Buffer = True%>
<!-- #include file="include/installning.asp" -->
<!-- #include file="include/link.asp" -->
<%Function FixaTecken(str)
FixaTecken = Replace(Trim(str),"'","''")
End function
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db
If Request.Querystring("do")= "" Then%>
<BR>
<table width="502" border="0">
<form method="post" action="guestbook.asp?do=add" name="gastbok" onSubmit="return GbIn()">
<tr>
<td height="15"> Name<br>
<input type="text" name="namn" size="48"> </td></tr> <tr> <td> <div align="left">
E-mail <br>
<input type="text" name="email" size="48">
</div></td></tr> <tr> <td> <div align="left"> Homepage<br>
<input type="text" name="hemsida" size="48"> </div></td></tr> <tr> <td height="19" valign="top">
<div align="left"> Message<br>
<textarea name="Meddelande" cols="50" rows="10"></textarea>
</div></td></tr> <tr>
<td valign="top"> <input type="image" border="0" name="Posta inlägg" src="graphic/posta.gif" WIDTH="92" HEIGHT="21">
<br> <br> </td></tr> </form></table>
<table width="502" border="0" cellpadding="2" cellspacing="0">
<%Set Recset = Server.CreateObject("ADODB.Recordset")
Const gbaps = 25
Sidan = Request.QueryString("page")
If Sidan = "" then
sida = 1
Else
sida = Sidan
End If
With RecSet
.CursorLocation = 3
.CacheSize = gbaps
End With
SQL = "Select * From inlagg Order By datum desc"
RecSet.Open SQL, Conn
If RecSet.EOF Then%> <tr> <td><i>Inget har skrivit i gästboken.</i></td></tr>
<%Else
With RecSet
.MoveFirst
.PageSize = gbaps
.AbsolutePage = sida
End With
Sidor = RecSet.PageCount
If Sidor > 1 Then%> <tr> <td valign="top"> </td></tr> <%End If
X = 0
Do While Not RecSet.EOF And X < RecSet.PageSize%> <tr>
<td><img src="graphic/hr3d.gif" width="346" height="3"></td>
</tr>
<%If Recset("Email") <> "" Then%> <tr>
<td><font color="#000000">|</font> <b><a href="mailto:<%=Recset("Email")%>"><%=Recset("Namn")%></a></b> <font color="#000000">|</font>
<%=FormatDateTime(Recset("Datum"),4)%> <font color="#000000">|</font> <%=FormatDateTime(Recset("Datum"),2)%>
<font color="#000000">|</font> <a href="http://www.leissner.se/cgi/whois?text=<%=Recset("ip")%>&c=eu" target="blank"><%=Recset("ip")%></a>
<%If RecSet("Hemsida") <> "" Then%> <font color="#000000">|</font> <a href="<%=RecSet("Hemsida")%>" target="_blank">
<b><%=Mid(RecSet("Hemsida"),8,50)%></b> </a> <%End If%>
</td>
</tr> <tr>
<td><img src="graphic/hr3d.gif" width="346" height="3"></td>
</tr>
<%Else%> <tr>
<td><font color="#000000">|</font> <b><%=Recset("Namn")%></b> <font color="#000000">|</font> <%=FormatDateTime(Recset("Datum"),4)%>
<font color="#000000">|</font> <%=FormatDateTime(Recset("Datum"),2)%> <font color="#000000">|</font>
<a href="http://www.leissner.se/cgi/whois?text=<%=Recset("ip")%>&c=eu" target="blank"><%=Recset("ip")%></a>
<%If RecSet("Hemsida") <> "" Then%> <font color="#000000">|</font> <a href="<%=RecSet("Hemsida")%>" target="_blank">
<b><%=Mid(RecSet("Hemsida"),8,50)%></b> </a> <%End If%>
</td>
</tr> <tr>
<td><img src="graphic/hr3d.gif" width="346" height="3"></td>
</tr>
<%End If%> <tr>
<td><%=FixaLankar(RecSet("Meddelande"))%></td>
</tr>
<%If Recset("svar") <> "" Then%> <tr> <td> </td></tr> <tr> <td>melody club:<b>
</b><i><%=Replace(RecSet("svar"), vbCrLf, "<br>")%></i></td></tr> <%End If%> <%X = X+ 1
Recset.MoveNext
Loop
If Sidor > 1 Then%> <tr>
<td><img src="graphic/hr3d.gif" width="346" height="3"></td>
</tr>
<tr> <td valign="top"> <%For Sid = 1 To Sidor
If (Int(Sid)) = (Int(sida)) Then%> <font color="#CCCCCC"><%=Sid%></font> <%Else%>
<a href="?NODE=11&page=<%=Sid%>"><%=Sid%></a> <%End If
Next%> </td></tr> <tr> <td valign="top"> </td></tr> </table><%End If
Recset.Close
Set Recset = Nothing
End If
End If
If Request.QueryString("do")= "add" Then
Namn = Request.Form("namn")
Email = Request.Form("email")
Hemsida = Request.Form("hemsida")
Meddelande = FixaTecken(Request.Form("meddelande"))
Ip = Request.Servervariables("REMOTE_ADDR")
If Hemsida <> "" Then
If Left(Hemsida,7) = "http://" Then
Hemsida = Hemsida
Else
Hemsida = "http://" & Hemsida
End If
End If
Conn.Execute("Insert Into inlagg(Namn, Email, Hemsida, Meddelande,ip) Values('"& Namn &"','"& Email &"','"& Hemsida &"','"&Meddelande &"','"& Ip &"')")
Conn.Close
Set Conn = Nothing
Response.Redirect "?NODE=11"
End If%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/guestbook.mdb")
Set objRS = Conn.Execute ("SELECT TOP 1 Namn, Meddelande FROM inlagg ORDER BY datum DESC")
If not objRS.EOF then
Response.write "<b>Senaste inlägget:</b><br>" & objRS("Namn") & ": " & objRS("Meddelande") & "<br><br>"
End if
objRS.Close
Set objRS = Nothing
Conn.Close
set Conn = Nothing
%>
Det vore bra om du såg över så du bara postade relevant kod, då blir det mycket lättare att hjälpa till.
Jag vet inte vad du har i dina includefiler, men i någon av dem definieras väl db. Ta bort den andra inkluderingen, så du inte inkluderar en massa skräp i onödan.
Koden funkar inte... Så jag ändrade lite så att det blev såhär:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db = Server.MapPath("db/guestbook.mdb")
Set objRS = objConn.Execute ("SELECT TOP 1 Namn, Meddelande FROM inlagg ORDER BY Datum DESC"
If not objRS.EOF then
Response.write "<b>Senaste inlägget:</b><br>" & objRS("Namn") & ": " & objRS("Meddelande") & "<br><br>"
End if
objRS.Close
Set objRS = Nothing
objConn.Close
set objConn = Nothing
%>
Funkar inte bättre nu och jag får följande mess:
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/html/Site/TMPd42qb9rn1e.asp, line 4, column 92
Set objRS = objConn.Execute ("SELECT TOP 1 Namn, Meddelande FROM inlagg ORDER BY Datum DESC"
Vad är det för fel? :(
Det saknas en slutparentes på den raden, precis som felmeddelandet säger.
Set objRS = objConn.Execute ("SELECT TOP 1 Namn, Meddelande FROM inlagg ORDER BY Datum DESC")
Dessutom:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db = Server.MapPath("db/guestbook.mdb")
skall vara:
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/guestbook.mdb")
Edit: jag ser att jag också skrev fel namn på connectionobjektet. Jag har korrigerat min kod ovan så den förhoppningsvis fungerar bättre.
mvh
Tack alla snälla :) Nu blev koden perfekt!