Något är fel här... Id för den artikel (artikeltabell) som skall sparas i en kommentartabell hänger inte med (verkar det som)?
Jag har en sida som visar en artikel med eventuella kommentarer. Längst ned på sidan finns en form som skickar kommentarinlägget till db artikel_kommentar. Jag får dock Type Mismatch när jag skall lagra artikelid i artikelkommentardatabasen eller så lagras inte artikelid i artikeldatabasen. Vad är fel...? ;-)
Koden ser i kort ut som följer:
SQL = "SELECT * From artikel_kommentar where artikelid= "& Request.Querystring("reportageid") &" "
Recset.Open SQL, Conn
...Visar eventuell kommentarer...
Visar en "form" som skickar datat (action) vidare för lagring av artikelkommentar...
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=reportageid" onSubmit="return formkoll()">
l
Hänger id=reportageid med ovan???
% IF Request.Querystring("do") = "sparakommentar" AND Request.Querystring("id") = "reportageid" Then
...
...
RecSet("artikelid")=Request.Querystring("reportageid")
...och här får jag Type ismatch, om jag ändrar reportageid till id funkar får jag inget fel men artikelid i tabellen artikelkommentar sparas inte. Alltså måste något vara fel, variabeln hänger inte med i Request.Query eller...??
Tack på förhand
Johanneshov
mikulMedlem sedan aug. 20013 824 inlägg Se till att du använder samma typ av data hela tiden.
Du kan alltså inte gemföra ett fält av typen tal med en av typen text. Då får du felmeddelandet Type mismtch.
Lycka till!
artikelid är long integer autonumber och artikelid i kommentar är Number Long Integer... så det torde ju vara ok!
Frågan är vad som ligger i Request.Querystring("reportageid")
längst ned, hur kollar jag det innan jag skriver ut den??? OBS nybörjare! ;-)
Tanken är att det skall vara samma värde som hängt med sedan första kodsnutten...
SQL = "SELECT * From artikel_kommentar where artikelid= "& Request.Querystring("reportageid") &" "
Recset.Open SQL, Conn
@ndersMedlem sedan juni 200032 969 inlägg Vill du inte skicka med värdet som finns i reportageid istället för strängen reportageid?
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=<%= reportageid %>" onSubmit="return formkoll()">
Eller ska du skicka med den strängen också?
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=reportageid&reportageid=<%= reportageid %>" onSubmit="return formkoll()">
Jag är inte helt hundra på hur du vill ha det.
edit: om du inte har skapat variabeln reportageid får du göra det, eller ersätta med request.querystring("reportageid").
mvh
mikulMedlem sedan aug. 20013 824 inlägg Detta kollar om det är ett numriskt värde i QuerystSingen.
If isNumeric(Request.Querystring("reportageid")) then
SQL = "SELECT * From artikel_kommentar where cInt(artikelid)= "& cInt(Request.Querystring("reportageid")) &";"
Set rs = Connect.Execute(SQL)
end if
Funkar det inte så får du visa mer kod ;)
@ndersMedlem sedan juni 200032 969 inlägg Rättelse till mikuls inlägg:
Funktionen heter isNumeric(), inget annat.
Mvh,
Jag vill skicka med det nukeriska värdet i reportageid
<form name="fylli" method="post" action="reportage.asp?do=sparakommentar&id=<%= reportageid %>" onSubmit="return formkoll()">
Detta vill jag sedan lagra i databasen artikel_kommentar med följande:
<% IF Request.Querystring("do") = "sparakommentar" Then
Set Conn = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/nyheter.mdb")
Addera = "SELECT * FROM artikel_kommentar"
RecSet.Open Addera, Conn, 3, 3
RecSet.Addnew
RecSet("artikelid")= ***HJÄLP MIG****
RecSet("kommentar")=Request.Form("kommentar")
RecSet("namn")=Request.Form("namn")
RecSet("email")=Request.Form("email")
RecSet("datum")=Date()
RecSet.Update
RecSet.Close
Conn.Close
Set RecSet = nothing
Set Connect = nothing
Response.Redirect("reportage.asp?do=visa")
End if
%>
Nu är jag rejält trött... Hur skall jag skriva för att lagra in värdet av reportageid i databasen... Måste jag omforma IFsatsen.. för att hämta upp resultatet av action i from? Vad skall stå i ***HJÄLP MIG*** ovan altså... ,-)
MVH
Johanneshov
mikulMedlem sedan aug. 20013 824 inlägg
@nders skrev:
Rättelse till mikuls inlägg:
Funktionen heter isNumeric(), inget annat.
Mvh,
Word! ;) Alla är inte perfekta :P
<%
Function fix(str)
str = Replace(trim(str), "'", "''")
fix = str
End function
IF Request.Querystring("do") = "sparakommentar" Then
IF IsNumeric(Request.QueryString("ID")) then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "provider=microsoft.jet.oledb.4.0; data source =" & Server.MapPath("db/nyheter.mdb")
SQL = " Insert into artikel_kommentar(artikelid, kommentar, namn, email, datum)"_
& " Values("& Request.QueryString("ID") &", '"& Fix(Request.Form("kommentar")) &"',"_
& " '"& Fix(Request.Form("namn")) &"', '"& Fix(Request.Form("email")) &"',"_
& " '"& Date() &"');"
Conn.Execute(SQL),,128
Conn.Close : Set Conn = nothing
Response.Redirect("reportage.asp?do=visa")
Else
Response.write "Nått Blev fel.<br>"
End if
End if
%>
Det borde nog funka fint ;)