Det är nästan lite skrattretande... Det är ju fel ÖVERALLT!
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'uppdate'
/inetv05akli/miniprojekt/Fsupp_3.asp, line 23
Rad 23:
data.uppdate
52 svar · 955 visningar · startad av Kreles · sida 2 av 3
Jag har en uppgift i skolan som går ut på att göra en blogg. Jag har kört fast totalt och har ingen aning om hur jag fortsätter. :( Uppgifterna i formuläret läggs inte in i databasen, jag vet inte hur jag ska få en kort ingress (utan att besökarna får skriva den själv. Jag vill alltså få ingressen automatiskt från den första raderna i inlägget), jag vill ha ämnet klickbart, men vet inte hur man
Läs frågan i sin helhet →Det är nästan lite skrattretande... Det är ju fel ÖVERALLT!
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'uppdate'
/inetv05akli/miniprojekt/Fsupp_3.asp, line 23
Rad 23:
data.uppdate
Också tar vi och slänger bort ett av p:na i Update ;)
:OO
Microsoft JET Database Engine error '80040e21'
You cannot add or change a record because a related record is required in table 'Användare'.
/inetv05akli/miniprojekt/Fsupp_3.asp, line 23
Antingen tar du bort relationen mellan tabellerna eller så lägger du till användaren i tabellen "användare" först.
Det är ingen användare... Man loggar inte in ännu =S
Då borde du inte ha relationen mellan tabellerna i databasen.
Nu gör man däremot det, och vi har fått iordning på en hel del =)
Men vi kan inte få ett visst inlägg att kopplas till en viss användare. Vi fick inläggen att skrivas ut, men de skrevs ut av alla 4 olika användare (alltså 4 gånger), nu funkar det inte alls...
<%
dim conn, data, sql
Function intro(id,las,text,tal) 'Skapar funktionen intro()
myarr = split(text, " ")
i = 0
for i = lbound(myarr) to ubound(myarr)
select case i
case tal-1
response.write(myarr(i) & " ... <a href=""link.asp?id=" &id& """><B>" &las& "</B></a>")
exit for
case else
response.write(myarr(i) & " ")
end select
next
end function
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Blogg.mdb")
%>
<html>
<head>
<title>START</title>
</head>
<body>
<p><a href="fsupp_3.asp">Skriv nytt inlägg</a><BR>
</p>
<table border=1>
<TR>
<TD><B>Ämne</B></TD>
<TD><B>Författare</B></TD>
<TD><B>Inlägg</B></TD>
<TD><B>Datum</B></TD>
</TR>
<%
'Set data =Conn.Execute("SELECT * from Artiklar")
SQL =" SELECT Artiklar.Ämne, Artiklar.Inlägg, Artiklar.Datum, Artiklar.ArtikelID, Användare.Användarnamn FROM Artiklar, Användare "
Set data =Conn.Execute(SQL)
While Not Data.EOF
Response.write "<tr><td><a href=""index.asp?artikel=" & data("ArtikelID") & """>" & data("Ämne") & "</a></td>"
response.write "<td>" & data("Användarnamn") & "</td>"
'Response.Write "<td>" & intro(2,"Läs mer >>",data("Inlägg"),6) & "</td>"
response.write "<TD>" & DATA("Inlägg") & "</TD>"
response.write "<td>" & data("Datum") & "</td></tr>"
data.moveNext
wend
%>
<%
'response.write intro(2,"Läs mer >>",data("Inlägg"),6)
%>
<%
'Data.MoveNext
'Wend
%>
</table>
</body>
</html>
Det är lite fel i koden
Du måste lägga till en Whereklausul i sql-satsen som kopplar ihop inlägg med användare.
När du hämtar från två tabeller på det sättet måste du knyta ihop tabellerna med en JOIN, annars hämtas alla olika alternativ.
SQL =" SELECT Artiklar.Ämne, Artiklar.Inlägg, Artiklar.Datum, Artiklar.ArtikelID, Användare.Användarnamn FROM Artiklar INNER JOIN Användare ON Artiklar.Användarnamn = Användare.Användarnamn"
Du kanske får byta i joinen om det är andra fält det skall kopplas ihop på.
mvh
Den "gamla" varianten som gör samma sak som @nders Join.
SQL =" SELECT Artiklar.Ämne, Artiklar.Inlägg, Artiklar.Datum, Artiklar.ArtikelID, Användare.Användarnamn FROM Artiklar, Användare WHERE Artiklar.Användarnamn = Användare.Användarnamn"
@nders skrev:
När du hämtar från två tabeller på det sättet måste du knyta ihop tabellerna med en JOIN, annars hämtas alla olika alternativ.
SQL =" SELECT Artiklar.Ämne, Artiklar.Inlägg, Artiklar.Datum, Artiklar.ArtikelID, Användare.Användarnamn FROM Artiklar INNER JOIN Användare ON Artiklar.Användarnamn = Användare.Användarnamn"Du kanske får byta i joinen om det är andra fält det skall kopplas ihop på.
mvh
Funkar nu =) Men det läggs inte in några nya inlägg längre...
http://62.13.13.12:2005/inetv05akli/miniprojekt/Fsupp_1.asp
http://62.13.13.12:2005/inetv05akli/miniprojekt/Fsupp_3.asp
Och funktionen där man kunde bestämma antal ord fungerar inte att lägga inuti en tabell, texten hamnar utanför tabellen. (Jag satte den som en kommentar (') för att det är igentligen en senare prioritering)
<%
dim conn, data, sql
Function intro(id,las,text,tal) 'Skapar funktionen intro()
myarr = split(text, " ")
i = 0
for i = lbound(myarr) to ubound(myarr)
select case i
case tal-1
response.write(myarr(i) & " ... <a href=""link.asp?id=" &id& """><B>" &las& "</B></a>")
exit for
case else
response.write(myarr(i) & " ")
end select
next
end function
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Blogg.mdb")
%>
<html>
<head>
<title>START</title>
</head>
<body>
<p><a href="fsupp_3.asp">Skriv nytt inlägg</a><BR>
</p>
<table border=1>
<TR>
<TD><B>Ämne</B></TD>
<TD><B>Författare</B></TD>
<TD><B>Inlägg</B></TD>
<TD><B>Datum</B></TD>
</TR>
<%
'Set data =Conn.Execute("SELECT * from Artiklar")
SQL =" SELECT Artiklar.Ämne, Artiklar.Inlägg, Artiklar.Datum, Artiklar.ArtikelID, Användare.Användarnamn FROM Artiklar INNER JOIN Användare ON Artiklar.AnvändarID = Användare.AnvändarID"
Set data =Conn.Execute(SQL)
While Not Data.EOF
Response.write "<tr><td width=""100""><a href=""index.asp?artikel=" & data("ArtikelID") & """>" & data("Ämne") & "</a></td>"
response.write "<td width=""100"">" & data("Användarnamn") & "</td>"
'Response.Write "<td>" & intro(2,"Läs mer >>",data("Inlägg"),6) & "</td>"
response.write "<TD width=""300"">" & DATA("Inlägg") & "</TD>"
response.write "<td width=""80"">" & data("Datum") & "</td></tr>"
data.moveNext
wend
%>
<%
'response.write intro(2,"Läs mer >>",data("Inlägg"),6)
%>
<%
'Data.MoveNext
'Wend
%>
</table>
</body>
</html>
Det ser ut som att databasen inte ligger där den ska?
Den ligger i samma mapp som resten av sidorna
Ok. Dubbelkolla det, för så här ser det ut när jag besöker sidorna du länkat till ovan:
Microsoft JET Database Engine error '80004005'
Could not find file 'D:\Inetpub\InetV05\inetv05akli\miniprojekt\Blogg.mdb'.
/inetv05akli/miniprojekt/Fsupp_1.asp, line 20
kollade http://62.13.13.12:2005/inetv05akli/miniprojekt/ där finns inte någon blogg.mdb eller *.mdb... lägg in den i mappen så tror jag du får fram önskade resultatet
Nu ligger databasen där. Den hade inte kommit upp riktigt när jag försökte ladda upp den... (Blir så ibland).
Koden jag fick förut som gör att texten bara blir 6 bokstäver lång tycks inte fungera innuti en tabell. Texten lägger sig utanför. Gör jag något fel eller funkar det helt enkelt inte?
Du gör nog något fel. Kontrollera den resulterande HTML-koden och se så dina html-tabeller ser korrekta ut.
[kod]
Response.write "<tr><td width=""100""><a href=""Fsupp_1.asp?artikel=" & data("ArtikelID") & """>" & data("Ämne") & "</a></td>"
response.write "<td width=""100"">" & data("Användarnamn") & "</td>"
'Response.Write "<td>" & intro(2,"Läs mer >>",data("Inlägg"),6) & "</td>"
response.write "<TD width=""300"">" & DATA("Inlägg") & "</TD>"
response.write "<td width=""80"">" & data("Datum") & "</td></tr>"
[kod]
Så ser det ut. Just nu är raden jag är ute efter som en kommentar för att sidan ska fungera normalt i övrigt. (Den ska ju ersätta raden under om det går att få att fungera
På vilket sätt fungerar det inte då? Hur ser den färdiga HTML-koden ut när du använder funktionen?
Texten jag försöker skriva ut i tabellen hamnar utanför istälelt för i cellen där det ska vara.