Engine^Medlem sedan dec. 20003 887 inläggOk. Det är alltså fel namn på variabeln. Du har en rad som ser ut såhär
Set [i]xxxxxxx[/i] = Server.CreateObject("ADODB.Connection")
För att sedan öppna anslutningen följer det en rad som ser ut såhär
[i]xxxxxxx[/i].Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("forum.mdb")
Byt ut x:en mot det namn du vill ha på din anslutning. Förslagsvis objConn.
AadeMedlem sedan juli 20041 081 inlägg Så här ser koden ut från början..
<%
' skapa en databas kopling till våran databas
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("forum.mdb")
' ställer frågan om vi ska spara en tråd ?
If Request.QueryString("action") = "spara" then
Addera = "SELECT * FROM forum"
objRs.Open Addera, Connect, 3, 3
' skapar en ny rad i tabellen
rs.addnew
rs("namn") = request.form("namn")
rs("email") = request.form("email")
rs("amne") = request.form("amne")
rs("titel") = request.form("titel")
rs("med") = request.form("med")
rs("org") = "ja"
rs("datum") = now
rs("senaste") = now
rs.update
'stänger allt efter oss
rs.close
connect.close
set rs = nothing
set connect = nothing
' länkar tillbaka till forum.asp
response.Redirect "forum.asp"
'avslutar frågan
end if
'öppnar ämnes tabellen
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3
'börjar loopa igenom alla ämnena
do until rs2.eof
' skriver ut namnet på ämnet
Response.write rs2("amne")
'öppnar tabellen med inläggen där ämnet stämmer överens men bara dom 5 första
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT top 5 * FROM forum where amne='"&rs2("amne")&"' order by id desc"
rs.Open Addera, Connect, 3, 3
' om inget i tabellen hittades som passade ihop med ämnet så visar vi följande text
if rs.eof then
%>
<br>Inga trådar i detta ämne än :(
<%
' annats så börjar vi loopa igenom trådarna
else
do until rs.eof %>
<br>
<a href="forum_las.asp?id=<%=rs("id")%>"><%=rs("titel")%></a> <%=rs("senaste")%>
Svar:
<%
' nu öppnar vi tabellen igen men nu kollar vi efter svar på tråden
' och räknar hur många dom är
Set rs3 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM forum where svarpa='"&rs("id")&"'"
rs3.Open Addera, Connect, 3, 3
' med följande kod räknar vi svaren
antal = rs3.recordcount
' sen så stänger vi den tabellen
rs3.close
set rs3 = nothing
'och skriver ut antalet svar
response.write antal
'sen går vi till nästa tråd
rs.movenext
loop
'och så avslutar vi frågan om några trådar fanns
end if
' och stänger den tabellen
rs.close
set rs = nothing
' lägger in två nya raden så det inte blir så grötigt :)
response.write "<br><br>"
' loopen börjar om genom ämnena.
rs2.movenext
loop
' stänger tabellen för ämnena
rs2.close
set rs2 = nothing
' nu gör vi ett formulär
%>
<br>
<br>
' länkar den till samma sida som denna fast lägger till en querystring
<form name="form" method="post" action="forum.asp?action=spara">
Ditt namn:<br>
<input name="namn" type="text" size="50">
<br>
Min email:<br>
<input name="email" type="text" size="50">
<br>
Kategori:<br>
<select name="amne">
<%
' loopar igenom alla ämnena
Set rs2 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM amne order by amne desc"
rs2.Open Addera, Connect, 3, 3
do until rs2.eof
%>
<option value="<%=rs2("amne")%>"><%=rs2("amne")%></option>
<%
rs2.movenext
loop
%>
</select>
<br>
Rubrik:<br>
<input name="titel" type="text" size="50">
<br>
Inlägg:<br>
<textarea name="med" cols="50" rows="10"></textarea>
<br>
<input type="submit" name="Submit" value="Skicka">
</form>
<%
' stänger databasen för att loopa igenom ämnena
rs2.close
set rs2 = nothing
connect.close
set connect = nothing
%>
AadeMedlem sedan juli 20041 081 inlägg sk jag byta ut 2 a raden då?
AadeMedlem sedan juli 20041 081 inlägg skulle va schysst om du gjorde de åt mej känns som jag gör fel annars :)
Engine^Medlem sedan dec. 20003 887 inläggIstället för att göra det åt dig så har jag ett bättre förslag. ;)
Läs igenom Vides eminenta artiklar om ASP.
Vide om ASP
Men för att ge dig ett någotlunda svar så skulle jag skriva dom första raderna såhär
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
Nu kommer det att dyka upp felmeddelanden på alla rader som försöker använda sig av connectvariabeln, men det är bara att ändra det namnet till objConn.
Lycka till! :)
SsolbulleMedlem sedan mars 20015 287 inlägg Det förefaller helt klart i mina ögon som att du har blandat ihop dina databaser, jag tycker det ser ut som att du har fel namn på dina tabellnamn lite här och där.
AadeMedlem sedan juli 20041 081 inlägg får fortfarnade felmedelande rs2.Open Addera, Connect, 3, 3
rs2.Open Addera, Connect, 3, 3
Engine^Medlem sedan dec. 20003 887 inlägg
ade skrev:
får fortfarnade felmedelande rs2.Open Addera, Connect, 3, 3
rs2.Open Addera, Connect, 3, 3
Har du bytt namn på anslutningen? Isånnafall är ju svaret rätt uppenbart, eller hur?
Om inte, så skriv ut vilket felmeddelande du får.
AadeMedlem sedan juli 20041 081 inlägg [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/forum2/forum.asp, line 38
SsolbulleMedlem sedan mars 20015 287 inlägg Du har alltså en tabell som heter amne som i sin tur innehåller ett fält som även det heter amne?
Addera = "SELECT * FROM amne order by amne desc"
Engine^Medlem sedan dec. 20003 887 inläggEtt tips till ade och andra som inte gör det: sätt någon typ av prefix framför variablerna, så att det snabbt går att lista ut vad dom hör till.
I detta fall: tabellen amne bör döpas om till exempelvis tblAmne eller T_amne. Fältet/kolumnen amne bör döpas om till strAmne.
Det kan kännas som att det blir en massa att ändra på, men i slutändan blir det så mycket tydligare och bättre.
AadeMedlem sedan juli 20041 081 inlägg solbulle vart ska jag klistar in den koden?
SsolbulleMedlem sedan mars 20015 287 inlägg Det är ett citat av din kod, den raden som du hade fel på, som jag är lite fundersam på.
Engine^Medlem sedan dec. 20003 887 inläggDu ska inte klistra in den koden utan du ska ändra på tabell- och kolumnnamn tills du har bättre överblick över koden.
Koden som solbulle visade har du redan och det är typisk "dålig" kod. Ett fält har samma namn som den tabell den ingår i.
Börja om från början, så du har lite mer baskunskap... det kan ta lite tid det också, men det är det värt.
AadeMedlem sedan juli 20041 081 inlägg Okej. Men jag tror jag lär mej bäst på att försöka så här istället för att bara läsa kurser.. Känns så iaf. även om ni får anstränga er en hel del men det är väl ganska kul :) 1000 tack.. om jag kan hjälpa er på nå sätt så gör jag det.. inte inom asp iaf. :)
Jag börjar om då..
SsolbulleMedlem sedan mars 20015 287 inlägg Jag tog och kikade på den där länken till forumet, den koden är helt åt h-vete. Full av fel.
Han som har postat det kan aldrig lyckats med att få det där att lira.
Hitta ett bättre skript eller knacka ihop ett eget. Att försöka använda det där är lär bara bli problematiskt
SsawMedlem sedan mars 20011 880 inlägg ade
Har du löst ditt forum än?
Det fanns ganska så mycket fel i det där scriptet, så har du fortfarande problem så kan du kontakta mig.