webForumDet fria alternativet

Kunna kommentera artikel

ASP

55 svar · 1 449 visningar · startad av Vinnaren · sida 2 av 3

Frågan, av Vinnaren

Hej Jag håller på att bygga en artikelsida med kommentar funktion. Det är den sista delen i koden jag behöver hjälp med. Hämtningen av själva kommentarerna till rätt artikel fungerar. Problemet är själva sparningen av nya kommentarer så att de hamnar till rätt artikel Här är hela koden jag har: <% Response.Buffer = True %> <LINK REL=stylesheet HREF="stil.css" TYPE="text/css"> <% Set Conn =

Läs frågan i sin helhet →
Medlem sedan sep. 2005833 inlägg
#21

får fel på:

<%=news("kommentar")%><hr size="1" noshade color="#000000"></span></font></td>

ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

och jag har kollat så att den heter rätt :S

även provat med artikelkommentar.kommentar

Medlem sedan juni 200032 967 inlägg
#22

... och hur ser den SQL-frågan ut som fyller det recordsetet? Hämtar du verkligen fältet?

Medlem sedan sep. 2005833 inlägg
#23

ok, nu funkar det igen, hade

response.write "SELECT * FROM artikelkommentar WHERE artikel_id = '" &Request.QueryString("visa") & "'"

bytte till Addera=
det var ju på själva sparningen response.write skulle användas,

response.write ("INSERT INTO artikelkommentar (namn,email,kommentar,artikel_id,datum)" & "VALUES ('" & strnamn & "','" & stremail & "','" & strkommentar & "'," & strartikel_id & ",#" & strdatum& "'#)")

men jag får fortfarande:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'artiklar.id ='.

när jag trycker på skicka :S

Medlem sedan apr. 20031 660 inlägg
#24

Vinnaren skrev:

....
det var ju på själva sparningen response.write skulle användas,

response.write ("INSERT INTO artikelkommentar (namn,email,kommentar,artikel_id,datum)" & "VALUES ('" & strnamn & "','" & stremail & "','" & strkommentar & "'," & strartikel_id & ",#" & strdatum& "'#)")

...

Nej, det är det inte! Tittar du på dina två kodbitar, var hittar du artiklar.id? I första biten, med SELECT. Som skrevs tidigare, INSERT har inte med feltexten att göra.

Hjälpen vi ger syftar till att du ska skriva ut den kodsnutten du exekverar, för att se vad som fattas. Jag (och @nders) ser direkt att du saknar ett värde för artiklar.id, men för att du ska kunna felsöka själv, och förstå hur man gör, vill vi att du skriver ut själva frågan.

Det @nders gjort för dig ska ge en utskrift av frågan. Alla fel som kommer efter (tex ADODB.Recordset-felet) bryr vi oss inte om nu. Får du inte ut texten, ligger något annat fel före, men det vore konstigt, eftersom du kom fram till denna rad i koden tidigare.

Problemets lösning ligger, som tidigare, att lista ut varför inte artiklar.id inte har något värde.

Medlem sedan sep. 2005833 inlägg
#25

ok, det är alltså såhär det ska vara, men det är som jag skrev innan, jag får fel på <%=news("kommentar")%>
När man anv. * så ska väll alla fälten hämtas som är i tabellen?

response.write "SELECT * FROM artikelkommentar WHERE artikel_id = '" &Request.QueryString("visa") & "'"
Medlem sedan juni 200032 967 inlägg
#26

När man anv. * så ska väll alla fälten hämtas som är i tabellen?

Ja!

Men alltså, vi vill inte se din response.write-rad, den ger oss ju ingenting mer än tidigare execute!

@nders skrev:

Då skrivs den färdiga SQL-frågan, dvs det databasen tolkar, ut till webbläsaren.

Visa det som skrivs till webbläsaren.

Medlem sedan sep. 2005833 inlägg
#27

skrivs till webbläsaren??

Denna visar kommentarerna till artiklen

  <tr>
<td width="100%"><font face="Verdana"><span style="font-size: 8pt"><b><a href="mailto:<%=news("email")%>"><%=news("namn")%></a></b> </span>
<span style="font-size: 7pt">(<%=news("datum")%>)</span><span style="font-size: 8pt"><br>
<%=news("kommentar")%><hr size="1" noshade color="#000000"></span></font></td>
</tr>
Medlem sedan apr. 20031 660 inlägg
#28

Jo, men återigen, det INTE intressant vad som händer sedan!

Vad hämtar du? Inget, response.write SKRIVER UT text!
Eftersom vi inte hämtar något från databasen, kan inget skrivas ut.
Därför får du det fel du säger, men det är ointressant nu.

Det ska stå
("INSERT INTO artikelkommentar ... osv
GÖR det inte det, har du fått med något annat fel, enligt mitt förra inlägg.

Det är DET vi är intresserade av!

Vad du menar med "kommentarerna" förstår jag inte.

Medlem sedan sep. 2005833 inlägg
#29

är det alltså själva sparandet?
alltså:


<%
If Request.QueryString("task") = "laggtill" Then

	strnamn		        = SafeSQL(Request.Form("namn"))
	stremail 		    = SafeSQL(Request.Form("mail"))
	strkommentar		= SafeSQL(Request.Form("kommentar"))
	strartikel_id		= SafeSQL(Request.QueryString("visa"))
	strDatum			= now()
	
ADDERA ("INSERT INTO artikelkommentar (namn,email,kommentar,artikel_id,datum)" & "VALUES ('" & strnamn & "','" & stremail & "','" & strkommentar & "'," & strartikel_id & ",#" & strdatum& "'#)") 
		
		
		Set Addera = nothing : Conn.Close : Set Conn = nothing	
END IF
%>
Medlem sedan apr. 20031 660 inlägg
#30

Vinnaren skrev:

är det alltså själva sparandet?
...

Jag trodde vi skulle lösa problemet med artikel.id???

Var tog utskriften av sql:en vägen?
Varför finns inte artikel.id när du behöver den?

Om du inte försöker följa de råd som ges, har vi otroligt svårt för att ge lösningar på problemen.

Medlem sedan sep. 2005833 inlägg
#31

Enda stället artikel.id anv så är det vid anropningen av artiklen:

Addera = "SELECT artiklar.rubrik, artiklar.bild_nyhet, artiklar.nyhet, artiklar.Datum, artiklar.bild_text, artiklar.last, artiklar.skribent_id, redaktionen.ID, redaktionen.namn, redaktionen.email FROM redaktionen INNER JOIN artiklar ON redaktionen.ID = artiklar.skribent_id WHERE artiklar.id = " &Request.QueryString("visa")
Medlem sedan apr. 20031 660 inlägg
#32

Ja, det har vi ju kommit fram till, redan i ditt inlägg #5.
http://www.webforum.nu/showthread.php?p=1200056#post1200056

jag själv skrev:

#6: http://www.webforum.nu/showthread.php?p=1200057#post1200057
Lösningen är densamma, varför finns inte variabeln?

Varför innehåller Request.QueryString("visa") inget värde alltså?

Medlem sedan sep. 2005833 inlägg
#33

mjo, men hur ska jag göra?

Medlem sedan apr. 20031 660 inlägg
#34

Request.QueryString("visa") frågar du efter. VAD står det i querystring? Står inte ...&visa=siffra med, får du se till att få med den. "visa" kanske heter något annat? Stavfel? Rätta det. Och så vidare.

Utan ett värde kan du aldrig hämta en specifik post.

Det du frågar om är, återigen, grundläggande saker. Du får gärna fråga, men det tar vår tid och din tid, vilket kanske innebär att du blir less på hela saken, och lägger av.
Leta gärna upp en bra självstudiekurs för att få en bra grund att utgå från. Finns flera tips på wF.

Medlem sedan sep. 2005833 inlägg
#35

när jag klickar på en post så får jag. artikel.asp?visa=35&titel=......
så det måste ju vara rätt?

fösöker på ett annat sätt, satte in en textruta

<input type="text" name="artikel_id" size="20" value="<%=request.querystring("visa")%>">

Och där kommer det upp samma nummer som i visa=
men lika sjutton får jag felmeddelandet:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'artiklar.id ='.
när jag ska spara kommentaren :(

Medlem sedan apr. 20031 660 inlägg
#36

Bra, då vet vi att du har siffra där. Prova sätt CInt runt requesten, CInt(Request.QueryString("visa")) för att tvinga 35 till att förstås som siffra. Borde inte behövas.
http://www.devguru.com/Technologies/vbscript/quickref/cint.html

Börja förresten med att hårdkoda in 35 istället för requesten, OM den inte hämtar den artikeln då, då vet jag inte vad som är fel...

Varför skickar du med titel, är det titeln på artikeln? Den får du ju från artikel 35?

Medlem sedan sep. 2005833 inlägg
#37

japp, det är rubriken som titel visar.
Den hämtar artikel 35, nu får jag ett annat felmeddelande när jag trycker på skicka:
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

Medlem sedan apr. 20031 660 inlägg
#38

Okej, verkar onödigt, du hämtar ju den, varför då skicka med?

Får man eof/bof-fel, betyder det att posten inte finns, dvs 35 finns inte.

Medlem sedan sep. 2005833 inlägg
#39

har ändrat så den bara visar artikel.asp?visa=35.
Men artikel 35 finns ju, har kollat efter i databasen med :S

Medlem sedan apr. 20031 660 inlägg
#40

Under förutsättning att du verkligen är där du tror i din kod, finns den inte.

Samtycker du inte, har du ett problem att lösa.

268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)