<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster FROM tblForum WHERE threadParent=0 ORDER BY threadDateTime DESC"
Set rs = Conn.Execute(SQL)
%>
<html>
<body>
<table border="0">
<tr>
<td colspan="3">
<a href="form.asp">Skriv ett nytt inlägg</a>
</td>
</tr> <tr>
<td>
<b>Rubrik</b>
</td>
<td>
<b>Datum</b>
</td>
<td>
<b>Vem?</b>
</td>
</tr>
<%
if rs.EOF or rs.BOF then
%>
<tr>
<td colspan="3">
<b>Det finns inga inlägg i forumet</b>
</td>
</tr>
<%
else
do while not rs.EOF
%>
<tr>
<td>
<b><a href="readThread.asp?threadID=<%=rs("ID")%>"><%=rs("Fält7")%></a></b>
</td>
<td>
<b>Postat av: <%=rs("Fält4")%></b>
</td>
<td>
<b>Inlägg: <%=rs("Fält6")%></b>
</td>
</tr>
<%
rs.MoveNext
loop
end if
%>
</table>
</body>
</html>
<%
Conn.Close
Set Conn = nothing
%>
</body>
</html>
Har inte testat den, så jag vet inte om ä:na kan skapa problem. Men jag skulle döpa om fälten du har till lite logiska namn, och inte till Fält1, fält2, fält3 osv. Även om det inte är du som döpt dem. ;)
AadeMedlem sedan juli 20041 081 inlägg ska jag göra om databasen? jag har skrivit thredid och de under fält1 ska jag skriva över fält1 istället?
AadeMedlem sedan juli 20041 081 inlägg fick detta felmedelande:
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/forum1/Default.asp, line 6
rad 6:
Set rs = Conn.Execute(SQL)
Det är under Design du skall döpa dem till namnen du vill ha.
När du, efter att ha döpt dem till "fält1" osv, skriver in något skapar du en post.
AadeMedlem sedan juli 20041 081 inlägg jag ska göra om db:n nu..
AadeMedlem sedan juli 20041 081 inlägg 1000 TACK till magnus.. felet var följande:
option explicit skulle bort och jag hade gjort fel med databasen...
tack ännu en gång..
Jag tog mig friheten att göra om lite. Delvis döpa om fälten i databasen och anpassa koden. Resultat: http://midgetzinc.net.loopiadns.com/test/test.asp
Databasen finns här:
http://midgetzinc.net.loopiadns.com/test/forum.mdb
Redigering: Det hade du redan fixat ser jag. ;)
AadeMedlem sedan juli 20041 081 inlägg okej.. mitt funkar lite grann
kan inte skapa en tråd
AadeMedlem sedan juli 20041 081 inlägg kan du skcika den postform.asp du gjorde? om du har gjort en..
Nja. Min kod är ju bara den som skriver ut trådarna.
Posta koden till sidan som skapar ny tråd så får vi väl kolla på den också. ;)
Förövrigt kan du redigera dina inlägg när du kommer på något, istället för att skriva ett nytt. :)
AadeMedlem sedan juli 20041 081 inlägg <% strDummy = "Ingen angiven" 'Text som vi stoppar in om användaren inte har fyllt i ett fält.
lngThreadParent = Request.Form("threadParent")
'Kontrollera om det är ett svar
if lngThreadParent = "" then lngThreadParent = 0
'Slut på kontroll
'Lägg in formulär-fälten i variablar och kontrollera efter ogiltiga tecken
strThreadPoster = Replace(Request.Form("threadPoster"), "'", "''")
strThreadPosterEmail = Replace(Request.Form("threadPosterEmail"), "'", "''")
strThreadHeadline = Replace(Request.Form("threadHeadline"), "'", "''")
strThreadText = Replace(Request.Form("threadText"), "'", "''")
dtmThreatDateTime = Now()
'Slut på kontroll
'Kontrollera om formulär-fälten var tomma.
if strThreadName = "" then strThreadName = strDummy
if strThreadPosterEmail = "" then strThreadPosterEmail = strDummy
if strThreadHeadline = "" then strThreadHeadline = strDummy
if strThreadText = "" then strThreadText = strDummy
'Slut på kontoll
'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn
'Skapa SQL-strängen för ett nytt inlägg.
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
'Kör SQL-strängen mot databasen
objConn.Execute(strSQL)
'Stäng databasen
objConn.Close
Set objConn = nothing
'Gå till tråd-listningen
Response.Redirect("default.asp")
%>
RikardMedlem sedan dec. 199917 055 inlägg
ade skrev:
option explicit skulle bort och jag hade gjort fel med databasen...
Nu har jag bara skumläst tråden, men varför ta bort option explicit? Sätt den rätt istället och dimma objekten precis som föreslaget. Option Explicit ska dock sitta allra först mig veterligen d.v.s:
<% Option Explicit %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstForum 'as recordset
Rikard: Om du skumläst på rätt ställe hade du sett min fråga. ;)
icaaq: Vad skall det vara bra för egentligen? Att dimma alltså. Har gjort alla möjliga script och aldrig använt mig av det.
Kanske du kan svara på den? :)
ade Vad är det som inte fungerar då?
AadeMedlem sedan juli 20041 081 inlägg Det verkar som om du missat enkelfnuttar.
Posta koden för sidan som skickar texten till databasen.
AadeMedlem sedan juli 20041 081 inlägg du får hela
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
strDummy = "Ingen angiven" 'Text som vi stoppar in om användaren inte har fyllt i ett fält.
lngThreadParent = Request.Form("threadParent")
'Kontrollera om det är ett svar
if lngThreadParent = "" then lngThreadParent = 0
'Slut på kontroll
'Lägg in formulär-fälten i variablar och kontrollera efter ogiltiga tecken
strThreadPoster = Replace(Request.Form("threadPoster"), "'", "''")
strThreadPosterEmail = Replace(Request.Form("threadPosterEmail"), "'", "''")
strThreadHeadline = Replace(Request.Form("threadHeadline"), "'", "''")
strThreadText = Replace(Request.Form("threadText"), "'", "''")
dtmThreatDateTime = Now()
'Slut på kontroll
'Kontrollera om formulär-fälten var tomma.
if strThreadName = "" then strThreadName = strDummy
if strThreadPosterEmail = "" then strThreadPosterEmail = strDummy
if strThreadHeadline = "" then strThreadHeadline = strDummy
if strThreadText = "" then strThreadText = strDummy
'Slut på kontoll
'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn
'Skapa SQL-strängen för ett nytt inlägg.
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
'Kör SQL-strängen mot databasen
objConn.Execute(strSQL)
'Stäng databasen
objConn.Close
Set objConn = nothing
'Gå till tråd-listningen
Response.Redirect("default.asp")
%>
</body>
</html>
SsolbulleMedlem sedan mars 20015 287 inlägg magnusfernstrom: Läste du inte detta?
Skriv nu ingenting du ångrar, hehe. ;)
http://www.webforum.nu/showthread.php?s=&postid=76616#post76616
Vad skulle jag ångra?
Jaja, jag läste väl lite snabbt då. :r
Byt:
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES(" & dtmThreatDateTime & ", '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
mot:
strSQL = "INSERT INTO tblForum (threadDateTime, threadPoster, threadPosterEmail, threadHeadline, threadText, threadParent) VALUES('" & dtmThreatDateTime & "', '" & strThreadPoster & "', '" & strThreadPosterEmail & "', '" & strThreadHeadline & "', '" & strThreadText & "', " & lngThreadParent & ")"
'" & dtmThreatDateTime & "' - Enkelfnuttar alltså :)
SsolbulleMedlem sedan mars 20015 287 inlägg Detta:
magnusfernstrom skrev:
icaaq: Vad skall det vara bra för egentligen? Att dimma alltså. Har gjort alla möjliga script och aldrig använt mig av det.
Inget illa ment dock.
Åter till tråden,
Om man ser hur det ser ut idb:n nu så stämmer nog det där bättre, dock bör egentligen datumfältet både i db och kod hanteras som just ett datumfält.