Just nu i M3-nätverket
Jump to content

insert into - mysql


Ringbom

Recommended Posts

Hejsan

jag har strul - jag kan inte lägga till poster i min mysql. (kör med ASP)

jag har formuläret som ser ut så här:

 

<form name="insertText" method="POST" action="addkommentar.asp?add=yes">

Skriv en kommentar
<INPUT TYPE=HIDDEN NAME="ID">
Namn:
<INPUT TYPE="TEXT" NAME="namn" SIZE="30" MAXLENGTH="225">
Kommentar:
<TEXTAREA NAME="kommentar" rows="3" cols="50"></textarea>
<INPUT TYPE=HIDDEN NAME="ok" value=0>
<INPUT TYPE=HIDDEN NAME="svar">
<INPUT TYPE=HIDDEN NAME="slottid">
<input type="Submit" value="Skicka">
</form>

 

och sedan filen som skall lägga till allt i mysql:

 

<% If Request.QueryString("add") = "yes" Then
Set Connect = server.createobject("ADODB.connection")
Connect.Open Session("Connection_String")
id = request.Form("id")
namn = request.Form("namn")
kommentar = request.Form("kommentar")
ok = request.Form("ok")
svar = request.Form("svar")
slottid = request.Form("slottid")
strSQL = "INSERT INTO kommentarer (id,namn,kommentar,ok,svar,slottid) VALUES('"& Request.Form("id") &"','"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("ok") &"','"& Request.Form("svar") &"','"& Request.Form("slottid") &"')" 
' för att skriva ut SQLfrågan.
Response.Write strSQL
Response.End
Connect.Close
end if
%>

 

När jag kör detta så får jag ett vitt fönster där det står:

INSERT INTO kommentarer (id,namn,kommentar,ok,svar,slottid) VALUES('','Saba ','min söta katt','0','','')

 

- Vad är det som är fel??

jag har fått huvudvärk!

 

Link to comment
Share on other sites

Mr Andersson

Fälten ID, SVAR och SLOTTID har inget värde (alltså inget value="xxx" i HTML-koden)

 

Eller jag kanske missuppfattade? Tror att Thomas Tydal har ett bättre svar :)

 

 

[inlägget ändrat 2008-08-21 23:34:20 av Mr Andersson]

Link to comment
Share on other sites

Thomas Tydal

Jag ser ingenstans att du försöker lägga till något i Mysql.

 

Jag kan inte ASP, men enligt Google ska det vara:

 

Connect.Execute(strSQL)

 

Lägg den raden före Connect.Close.

 

 

Link to comment
Share on other sites

jag lade till Connect.Execute(strSQL) och fick då:

Incorrect integer value: '' for column 'ID' at row 1

/nina/historia/addkommentar.asp, line 17

 

på rad 17 står det: Connect.Execute(strSQL)

 

Link to comment
Share on other sites

ID är väl ändå ett identitesfält i din databas och då skall detta inte anges i insert-queryn. Ändra till:

strSQL = "INSERT INTO kommentarer (namn,kommentar,ok,svar,slottid) VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("ok") &"','"& Request.Form("svar") &"','"& Request.Form("slottid") &"')" 

 

Link to comment
Share on other sites

ändrade som du sa och fick nu

Incorrect integer value: '' for column 'slottid' at row 1

/nina/historia/addkommentar.asp, line 17

 

på rad 17 står

Connect.Execute(strSQL)

 

 

Link to comment
Share on other sites

Då har du inte angett något värde på fältet i formuläret.

<INPUT TYPE=HIDDEN NAME="slottid">

 

Dessutom är slottid ett heltal och skall inte anges med enkelfnuttar kring värdet

 

strSQL = "INSERT INTO kommentarer (namn,kommentar,ok,svar,slottid) VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("ok") &"','"& Request.Form("svar") &"',"& Request.Form("slottid") &")" 

 

Link to comment
Share on other sites

hmm - nu börjar det bli krångligt :-/

 

Så här är det, jag skall på mina slott-sidor längst ner ha in det id:et som slotten har som ligger i en annan tabell.

För att du skall förstå vad jag menar så kan du se här:

http://www.historiesajten.se/slottdetalj.asp?id=329

längst ner där skall jag ha en kommentarsruta där folk kan skriva en kommentar om slottet... det är det där id som står där (329) som jag på något vis måste få med så att rätt kommentarer kommer på rätt slott när jag skall rada upp dem under resp. slott..

 

 

 

Link to comment
Share on other sites

Ok, om 329 är slottid:t så bör följande fungera (samt ändringen jag gav i inlägget innan, där jag tog bort enkelfnuttarna (') kring Request.Form("slottid")

 

I formuläret skall du ändra till:

<INPUT TYPE=HIDDEN NAME="slottid" VALUE="<%= Request.Querystring('id') %>">

 

Link to comment
Share on other sites

JAAAAA nu kommer det in i db i alla fall :-)

fast sen kom jag till en tom sida men det måste ju bara vara någon slags redirect eller vad det heter. Jag vill ju vara kvar på samma sida.

 

Sen skall jag godkänna inläggen först, för det är för många ungar som skriver en massa snusk :-(

När jag väl har godkänt inlägget skall det visas under samma slott som inlägget handlar om.

 

Jättetack - du jobbar med sånt här va? eller annars är du jäkligt smart!! nu kommer jag kunna sova inatt!!

 

Link to comment
Share on other sites

men det måste ju bara vara någon slags redirect eller vad det heter. Jag vill ju vara kvar på samma sida.

 

I slutet av koden gör du följande ompekning:

 
Response.Redirect "slottdetalj.asp?id=" & request.Form("slottid")

 

du jobbar med sånt här va?

Jodå, sen 90-talet.

 

Sen skall jag godkänna inläggen först, för det är för många ungar som skriver en massa snusk

Du skulle ju kunna skriva ett enklare filter som kontrollerar postningen efter ett antal förvalda "snuskord" som då låter bli att lägga in inlägget i databasen.

[inlägget ändrat 2008-08-22 00:21:25 av Anjuna Moon]

Link to comment
Share on other sites

jo det funkade det med :-)

nu måste jag gå och lägga mig!

jättetack för allt.

 

Imorgon får jag fundera ut hur jag skall göra resten.

sätta en 1:a i ok-rutan för att inlägget skall synas på rätt slott.

Om jag inte får till det så kanske jag kan höra av mig?

jättetack för allt.

 

Link to comment
Share on other sites

jo nu såg jag att du hade skrivit mer. en "snuskfiltrerare" alltså :-) hehe

jo en sån skulle vara bra. För om man tänker efter så kan det bli lite svårt att veta vilka slott som någon har skrivit något på. Jag har skrivit om över 140 stycken nu och det blir ju flera hela tiden.

 

 

Link to comment
Share on other sites

Om jag inte får till det så kanske jag kan höra av mig?

Bara att återkomma om det behövs. Tack för poängen!

 

Link to comment
Share on other sites

jo nu har jag kört fast igen :-/

jag har fått till det så att jag får in namn och inlägg och kan visa upp det under slottet. Men hur gör man för att få in datumet och tiden? Det verkar vara någon annan kod än den jag har i access till min gästbok.

Det är tomt i datumkolumnen i mysql.

 

Link to comment
Share on other sites

jag har försökt med datum = date()

och med

RecSet("Datum") = date()

RecSet("Tid") = FormatDateTime(Now, 4)

men då blir det bara fel.

Så jag tog bort det.

 

 

 

Link to comment
Share on other sites

Lägg in datumet direkt i din INSERT istället

 

strSQL = "INSERT INTO kommentarer (namn,kommentar,ok,svar,slottid,datum) VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("ok") &"','"& Request.Form("svar") &"',"& Request.Form("slottid") &",'" & now & "')" 

 

Link to comment
Share on other sites

Nu fick jag ett fel:

 

MySQL server version for the right syntax to use near '2008-08-22 20:40:14')' at line 1

/nina/historia/addkommentar.asp, line 13

På rad 13 är det Connect.Execute(strSQL)

 

 

jag har tagit bort "svar" och "ok" eftersom jag tänkte jag skulle försöka få till sån där filtergrej. Och då är det ju onödigt med ok, och svara kan jag ju göra (om jag skall) genom att lägga in ett eget inlägg. :-)

 

Så nu ser min sträng ut så här, och antagligen den det är fel på då:

 

strSQL = "INSERT INTO kommentarer (namn,kommentar,slottid,datum) VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("slottid") &",'" & now & "')" 

 

jag hittade det - det saknades en fnutt

[inlägget ändrat 2008-08-22 20:46:21 av Ringbom]

Link to comment
Share on other sites

Har du verkligen satt datatypen i mySql till DateTime eller är den bara satt till Date?

 

Jag är ingen mySql-expert så någon annan kanske kan hjälpa till här?

 

Link to comment
Share on other sites

datumet funkar lokalt nu men inte när jag sänder upp allt till loopia. Då blir det bara nollor i db och det visas inte upp

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...