webForumDet fria alternativet

Datum i MySql

Databaser & SQL

14 svar · 938 visningar · startad av snowcat

Medlem sedan feb. 2007220 inlägg
Frågan#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.

Medlem sedan juni 200032 967 inlägg
#2

Det beror på hur koden ser ut.

Medlem 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

Medlem sedan juni 200032 967 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

Medlem 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

Medlem sedan juni 200032 967 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.

Medlem 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?

Medlem sedan juni 200032 967 inlägg
#8

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

Medlem 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 :(

Medlem 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.

Medlem 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());"

Medlem sedan juni 200032 967 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.

Medlem sedan dec. 2006382 inlägg
#13

Såhär:

onSubmit="return wordFilter('kommentarer',['namn','kommentar']); return(CheckFields());">
Medlem sedan juni 200032 967 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());">
Medlem sedan dec. 2006382 inlägg
#15

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

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)