webForumDet fria alternativet

Forum

ASP

52 svar · 955 visningar · startad av Kreles · sida 2 av 3

Frågan, av Kreles

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 →
Medlem sedan apr. 200543 inlägg
#21

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

Medlem sedan juni 200032 967 inlägg
#22

Också tar vi och slänger bort ett av p:na i Update ;)

Medlem sedan apr. 200543 inlägg
#23

: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
Medlem sedan juni 200032 967 inlägg
#24

Antingen tar du bort relationen mellan tabellerna eller så lägger du till användaren i tabellen "användare" först.

Medlem sedan apr. 200543 inlägg
#25

Det är ingen användare... Man loggar inte in ännu =S

Medlem sedan juni 200032 967 inlägg
#26

Då borde du inte ha relationen mellan tabellerna i databasen.

Medlem sedan apr. 200543 inlägg
#27

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

Medlem sedan nov. 20017 144 inlägg
#28

Du måste lägga till en Whereklausul i sql-satsen som kopplar ihop inlägg med användare.

Medlem sedan juni 200032 967 inlägg
#29

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

Medlem sedan nov. 20017 144 inlägg
#30

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"
Medlem sedan apr. 200543 inlägg
#31

@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>
Medlem sedan juni 200032 967 inlägg
#32

Det ser ut som att databasen inte ligger där den ska?

Medlem sedan apr. 200543 inlägg
#33

Den ligger i samma mapp som resten av sidorna

Medlem sedan juni 200032 967 inlägg
#34

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

Medlem sedan juni 20019 519 inlägg
#35

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

Medlem sedan apr. 200543 inlägg
#36

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?

Medlem sedan juni 200032 967 inlägg
#37

Du gör nog något fel. Kontrollera den resulterande HTML-koden och se så dina html-tabeller ser korrekta ut.

Medlem sedan apr. 200543 inlägg
#38

[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

Medlem sedan juni 200032 967 inlägg
#39

På vilket sätt fungerar det inte då? Hur ser den färdiga HTML-koden ut när du använder funktionen?

Medlem sedan apr. 200543 inlägg
#40

Texten jag försöker skriva ut i tabellen hamnar utanför istälelt för i cellen där det ska vara.

267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)