webForumDet fria alternativet

håller på att göra dett forum men behöver lite hjälp

ASP

45 svar · 1 844 visningar · startad av Mycodez · sida 2 av 3

Frågan, av Mycodez

Jag håller på med ett forum men behöver lite hjälp med det Detta är koden till att skriva meddelandet till databasen: <% const connstring="provider=SQLOLEDB;Data source=;user id=; password=;initial catalog=" set conn= server.CreateObject("ADODB.CONNECTION") conn.Open(connstring) fran=session("anvnamn") till=request("till") rubrik=replace(request("rubrik"),"'","´") me

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

om ni vill ha koden där man matar in svars meddelande så kan jag skicka med det om det skulle vara lite lättare att lösa själva problemet :)

Medlem sedan aug. 2008815 inlägg
#22

Ett enkelt fel du skrev:

request.form("name")

Det ska nog stå:

request.form("Name")

alltså med stort "N"

Medlem sedan aug. 2008815 inlägg
#23

"response.redirect request.servervariables("HTTP_REFERER")" skickar tillbaka användaren till föregående sida. du kan läsa mera om server variabler här: http://www.w3schools.com/asp/coll_servervariables.asp

Medlem sedan feb. 2010445 inlägg
#24

jag rättade till lite fel som jag såg faktiskt men jag fick ett annat felmeddelande som lyder:
ADODB.Recordset error '800a0e7d'

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

/svara.asp, line 22

rad 22 är:
rs.open "svar"

och hela aspkoden är (när jag har ändrat lite men den gamla koden finns ju i svaret över):

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=db;Uid=***;Pwd=****;" 

if NOT request.form("name") = "" AND NOT request.form("meddelande") = "" then

set connection = server.createobject("Adodb.connection")
set rs = server.createobject("adodb.recordset")
connection.open connectionString

rs.open "svar"

svarID = request.Querystring("fid")
namn = request.form("Name")
email =request.form("Email")
meddelande = request.form("meddelande")
rs.addnew
rs("svarid") = svarID
rs("namn") = namn
rs("email") = email
rs("meddelande") = meddelande
rs.update
rs.close
connection.close
response.redirect request.servervariables("HTTP_REFERER")

else
response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>
Medlem sedan aug. 2008815 inlägg
#25

Prova:

rs.open "SELECT * FROM svar", connection
Medlem sedan feb. 2010445 inlägg
#26

jag jag provade det så fick jag detta felmeddelande

ADODB.Recordset error '800a0cb3'

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

/svara.asp, line 28

rad 28 är:

rs.addnew
Medlem sedan aug. 2008815 inlägg
#27

Det ska ju vara:

rs.open "svar", connection
Medlem sedan feb. 2010445 inlägg
#28

suck noshornin jag gjorde som du skrev men det blev fortfarande fel.. :( nu fick jag detta fel meddelande
ADODB.Recordset error '800a0e79'

Operation is not allowed when the object is open.

/svara.asp, line 28

raden 28 är. rs.open "svar", connection

hela koden är:

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=db;Uid=******;Pwd=*****;" 

if NOT request.form("name") = "" AND NOT request.form("meddelande") = "" then

set connection = server.createobject("Adodb.connection")
set rs = server.createobject("adodb.recordset")
connection.open connectionString

rs.open "SELECT * FROM svar", connectionString

svarID = request.Querystring("fid")
namn = request.form("Name")
email =request.form("Email")
meddelande = request.form("meddelande")
rs.open "svar", connection
rs("svarid") = svarID
rs("namn") = namn
rs("email") = email
rs("meddelande") = meddelande
rs.update
rs.close
connection.close
response.redirect request.servervariables("HTTP_REFERER")

else
response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>
Medlem sedan aug. 2008815 inlägg
#29

okey!
Skriv så här istället:

sql = "INSERT INTO svar (svarid,namn,email,meddelande) VALUES ('"&svarID&"','"&namn&"', '"&email&"', '"&meddelande&"')"
connection.Execute(sql)

istället för:

rs.open "svar", connection
rs("svarid") = svarID
rs("namn") = namn
rs("email") = email
rs("meddelande") = meddelande
rs.update
rs.close
Medlem sedan feb. 2010445 inlägg
#30

okej tack! nu funkar det någolunda men när jag ska svara på en tråd mer än en gång så blir det ett fel meddelande till :( Men hoppas ni vill hjälpa mig jag e liten ny på detta

felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.45]Duplicate entry '1' for key 1

/svara.asp, line 29

rad 29 =

connection.Execute(sql)

här är hela koden

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=*****;Uid=******;Pwd=*****;" 

if NOT request.form("name") = "" AND NOT request.form("meddelande") = "" then

set connection = server.createobject("Adodb.connection")
set rs = server.createobject("adodb.recordset")
connection.open connectionString

rs.open "SELECT * FROM svar", connectionString

svarID = request.Querystring("fid")
namn = request.form("Name")
email =request.form("Email")
meddelande = request.form("meddelande")
sql = "INSERT INTO svar (svarid,namn,email,meddelande) VALUES ('"&svarID&"','"&namn&"', '"&email&"', '"&meddelande&"')"
connection.Execute(sql)
connection.close
response.redirect request.servervariables("HTTP_REFERER")

else
response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>

tack för ni vill hjälpa mig :)

Medlem sedan juni 20019 519 inlägg
#31

Varför skapar du ett Recordset som du aldrig använder?

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=*****;Uid=******;Pwd=*****;" 

if NOT Len(Request.Form("name")) > 0 AND NOT Len(Request.Form("meddelande")) > 0 then
	set connection = server.createobject("Adodb.connection")
	connection.open connectionString

	svarID = request.Querystring("fid")
	namn = request.form("Name")
	email =request.form("Email")
	meddelande = request.form("meddelande")

	sql = "INSERT INTO svar (svarid,namn,email,meddelande) VALUES ('"&svarID&"','"&namn&"', '"&email&"', '"&meddelande&"')"
	connection.Execute(sql)

	connection.close

	response.redirect request.servervariables("HTTP_REFERER")
else
	response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>

Räcker om du bara skall göra en INSERT

Det felmeddelande du får är att du försöker sätta ett fält som är unikt

Medlem sedan feb. 2010445 inlägg
#32

bara en fråga vad menar du med len? som du skriver på en del ställen?

Medlem sedan feb. 2010445 inlägg
#33

voigtann1 jag ändrade till det du skrev men då kördes bara "else"-satsen och jag har fyllt i allt men vad kan då var fel?

Medlem sedan juni 20019 519 inlägg
#34

ta bort NOT på båda frågorna, LEN() är en VB funktion för att kolla längden på en sträng.

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=*****;Uid=******;Pwd=*****;" 

if Len(Request.Form("name")) > 0 AND Len(Request.Form("meddelande")) > 0 then
	set connection = server.createobject("Adodb.connection")
	connection.open connectionString

	svarID = request.Querystring("fid")
	namn = request.form("Name")
	email =request.form("Email")
	meddelande = request.form("meddelande")

	sql = "INSERT INTO svar (svarid,namn,email,meddelande) VALUES ('"&svarID&"','"&namn&"', '"&email&"', '"&meddelande&"')"
	connection.Execute(sql)

	connection.close

	response.redirect request.servervariables("HTTP_REFERER")
else
	response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>
Medlem sedan feb. 2010445 inlägg
#35

jag tog bort NOT från Len() statserna men då ficka jag detta felmeddelande

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.45]Duplicate entry '1' for key 1

/svara.asp, line 26

rad 26 är connection.Execute(sql)

och det är Yoigtann1s kod jag använder som är ovan

Medlem sedan juni 20019 519 inlägg
#36

Ett av fälten har du sagt att det inte få finnas dubbletter, kontrollera dina databas tabeller och se över din databas design att det stämmer med det du är ute efter.

Medlem sedan feb. 2010445 inlägg
#37

okej men jag vet inte hur det ska se ut riktigt. Du vet jag sitter och kör i en MySQL databas som jag fick från binero. som jag sen kan styra via PHPmyadmin. så hur kan det se ut? jag vill lära mig men jag förstår mig inte på det alltså inte detta i allafall.

Medlem sedan aug. 2008815 inlägg
#38

Jag vet inte exakt hur det ser ut i PHPmyadmin. Men om du kollar kolumnens inställningar så borde man typ kunna kryssa för en ruta som heter "unique" eller liknande. Om den är i kryssad, fast än du vill kunna göra dubbletter så är det bara att avkryssa den.

Medlem sedan feb. 2010445 inlägg
#39

jag gjorde så "SvarID" blev unik och satten primiär nycklen på "Meddelande" men då får jag

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.45]Duplicate entry '1' for key 2

/svara.asp, line 26

i stället

alltså jag förstår mig inte på PHPmyadmin alltså..

Medlem sedan feb. 2010445 inlägg
#40

eller är det något jag ska ändra i koden ???

<%

connectionString = "Driver={MySQL ODBC 3.51 Driver};Server=mysql26.kontrollpanelen.se;Option=3;Database=web77725_mycodez;Uid=web77725_master;Pwd=flagga;" 

if Len(Request.Form("name")) > 0 AND Len(Request.Form("meddelande")) > 0 then
	set connection = server.createobject("Adodb.connection")
	connection.open connectionString

	svarID = request.Querystring("fid")
	namn = request.form("Name")
	email =request.form("Email")
	meddelande = request.form("meddelande")

	sql = "INSERT INTO svar2 (svarid,namn,email,meddelande) VALUES ('"&svarID&"','"&namn&"', '"&email&"', '"&meddelande&"')"
	connection.Execute(sql)

	connection.close

	response.redirect request.servervariables("HTTP_REFERER")
else
	response.write "Du måste fylla i namn och meddelande för att det ska bli sparat."
end if
%>

rad 26 är connection.Execute(sql)

273 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)