webForumDet fria alternativet

Datum i MySql

14 svar · 938 visningar · startad av snowcat

snowcatMedlem sedan feb. 2007220 inlägg
#1

Hej
på min dator hemma (mysql, asp) så kan jag från ett formulär lägga upp en kommentar, där datum och tid står: 2008-08-23 16:19:10
Men när jag slänger upp allt till webservern så skrivs aldrig datumet ut. Vad kan vara fel? Jag har samma db där som hemma.

@ndersMedlem sedan juni 200032 969 inlägg
#2

Det beror på hur koden ser ut.

snowcatMedlem sedan feb. 2007220 inlägg
#3

trodde att det kunde vara någon skillnad på en server än på min dator - eftersom det är samma kod jag använder.

här är koden:

<% If Request.QueryString("add") = "yes" Then  Set Connect = server.createobject("ADODB.connection") 
Connect.Open Session("Connection_String")  
namn = request.Form("namn") 
kommentar = request.Form("kommentar") 
slottid = request.Form("slottid")  
strSQL = "INSERT INTO kommentarer (namn,kommentar,slottid,datum) 
VALUES('"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("slottid") &"','" & now & "')"  

Connect.Execute(strSQL) 
Connect.Close  
end if   
Response.Redirect "slottdetalj.asp?id=" & request.Form("slottid")  %>

Kan lägga till att i databasen vid Loopia skrivs det 0000-00-00 00:00:00
medan hemma 2008-08-23 16:46:25

@ndersMedlem sedan juni 200032 969 inlägg
#4

Ja, du ska inte avnvända now() inkonkatenerat från asp - då kan man aldrig veta att man får rätt datumformat - det skiljer sig ju beroende på hur servern är installerad. Du ska använda något inbyggt i sql - t.ex. current_timestamp. ex:

... ,'"& Request.Form("slottid") &"', current_timestamp ...

Se också gärna till att vi kan läsa din kod lite lättare.

mvh

snowcatMedlem sedan feb. 2007220 inlägg
#5

När jag lägger in kod här och sätter kodmärken runt så blir det så där lång sträng bara. Fixade till det lite nu - bättre?

Hur skulle

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

se ut med current_timestamp? Jag har försökt satt in det men får bara en massa fel. Det går visst inte bara att byta ut "now" mot "current_timestamp" :p

@ndersMedlem sedan juni 200032 969 inlägg
#6
strSQL = "INSERT INTO kommentarer 
(namn,kommentar,slottid,datum) 
VALUES('"& Request.Form("namn") &"','"& Request.Form
("kommentar") &"','"& Request.Form("slottid") 
&"', current_timestamp)"

alltså: byt bara '"& now & "' mot current_timestamp i din kod.

snowcatMedlem sedan feb. 2007220 inlägg
#7

Jättetack :-) Det funkade ju med en gång.
Om jag nu får vara lite krånglig, är det svårt att få bort sekunderna?
2008-08-23 16:46:25
Det skulle ju räcka med 2008-08-23 - 16:46
och kanske ett - mellan datum och tid, fast det är nog överkurs kan jag tro?

@ndersMedlem sedan juni 200032 969 inlägg
#8

Jag föreslår att du siktar på att ta bort sekunderna i presentationen - men nej, det är ingen stor pilsner. :)

snowcatMedlem sedan feb. 2007220 inlägg
#9

hmm ok - får klura på den ikväll då - kör ju nu med <%=RecSet("datum")%>

Fast du som verkar ha koll på saker, vet du om man kan ha två "onSubmit" i ett formulär?
Jag har två olika saker som jag vill ha utfört men klarar inte av att slå ihop två olika skript. Fast nu är vi nog i fel forum :(

tydalMedlem sedan juni 20034 013 inlägg
#10

När det gäller sekunderna i datumet så har jag för mig att funktionen som gör så att man bara tar ut en del av en sträng heter Mid, men det är 18 år sen jag skrev i det där språket sist (Basic). Men kanske typ; <%=Mid(RecSet("datum"), 1, 16)%>

Du kan inte ha två onSubmit, men du kan skriva flera saker i samma onSubmit. Bara att sätta semikolon emellan.

snowcatMedlem sedan feb. 2007220 inlägg
#11

... så hur skulle man kunna sätta ihop de här två?

onSubmit="return wordFilter('kommentarer',['namn','kommentar']);">
och
onsubmit="return(CheckFields());"

@ndersMedlem sedan juni 200032 969 inlägg
#12

Du kan visserligen sätta ihop dina två onsubmit-grejer, men vad vill du returnera?

Sedan ska man inte, jag repeterar: inte, använda strängfunktioner som mid() för att ta ut delar (eller o-delar!) av datum. Använd de datumfunktioner som finns i vbscript istället - eller en kombination av dessa i en egen formateringsfunktion om man så vill.

KrikoMedlem sedan dec. 2006382 inlägg
#13

Såhär:

onSubmit="return wordFilter('kommentarer',['namn','kommentar']); return(CheckFields());">
@ndersMedlem sedan juni 200032 969 inlägg
#14

Man kan bara ha en return - därav min fråga i ovanstående inlägg. Vill du returnera true om båda funktionerna i sig returnerar true?

onSubmit="return wordFilter('kommentarer',['namn','kommentar']) && (CheckFields());">
KrikoMedlem sedan dec. 2006382 inlägg
#15

Bah, jag som är trött. @nders har rätt...

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)