22. marts 2010 - 17:34Der er
19 kommentarer og 1 løsning
Nedtælling - ASP/MySQL/Java
Hej Eksperter!
Jeg har et stort problem - og jeg vil nu prøve at forklare det bedst muligt.
Jeg er igang med at lave et tekstbaseret browserspil - hvor bygninger kan bygges.
Jeg har brug for en kode der siger, at når jeg trykker på "OPGRADER" - så begynder tiden at gå i fx 10 minutter (timer og dage skulle gerne være muligt også). Når disse 10 minutter er gået skal den gerne opdatere min database-tabel med bygningens level. (hvis der er mere end 1 ting på venteliste til at blive bygget skal den først igangsatte kun bygges - efterfølgende skal den næste i køen gå igang).
Jeg håber virkelig der er nogen der kan hjælpe mig med dette. Jeg mener selv dette er et svært og muligvis også tidskrævende spørgsmål - og derfor er der selvfølgelig også lidt flere point end systemet siger der skal være til svære spørgsmål - nemlig 200..
Helt nøjagtigt, hvad er det så du mener? Og vil metoden virke som en nedtælling? - Altså, så den tæller ned imens man er på siden og ikke kun når der opdateres.?
Når resultatet er færdigt er det stadig kun den person der ejer byen der må kunne se det. - Nedtællingen skal fungere så brugeren kan se hvornår hans bygning er færdig.
Helt præcist, hvordan skal sådan noget så stilles op? Med en Work side - og måden den bliver indført med ASP?.
Ved at lave en insert og en select får du ikke en nedtælling.?
Det jeg har brug for er, at når jeg trykker på en knap så begynder der en nedtælling på x-antal minutter i databasen. Som selvfølgelig fortsætter selvom brugeren ikke befinder sig på byg siden eller for den skyld er offline mere. Når tiden når 0 skal den ind og opdatere forskellige værdier i min database. Jeg benytter mig af Asp og Mysql - og mangler selve koden til at lave denne proces. Håber du forstår?
Er det muligt du kan prøve at ligge en kode herind som skulle kunne lave denne effekt? Selv er jeg stadig i tvivl - hvis du kan så også lige hvad jeg skal smide ind i min worktabel.?
tabel worktasks: name varchar completed boolean completetime datetime
simpel ASP demo:
<% adParamInput = 1 adInteger = 3 adDate = 7 adBoolean = 11 adVarChar = 200 Set con = Server.CreateObject("ADODB.Connection") con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Databases\MSAccess\Test.mdb;User Id=Admin;Password=;" ' make all tasks completed that are completed Set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = con cmd.CommandText = "UPDATE worktasks SET completed = true WHERE completetime < NOW()" cmd.Execute Set cmd = Nothing ' insert new task If Not Request.Form("name") Is Nothing Then If Request.Form("name") <> "" Then Set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = con cmd.CommandText = "INSERT INTO worktasks VALUES(@nam,@cmplt,@tim)" cmd.Parameters.Append(cmd.CreateParameter("@nam", adVarchar, adParamInput, 50)) cmd.Parameters.Append(cmd.CreateParameter("@cmplt", adBoolean, adParamInput)) cmd.Parameters.Append(cmd.CreateParameter("@tim", adDate, adParamInput)) cmd.Parameters("@nam") = Request.Form("name") cmd.Parameters("@cmplt") = false cmd.Parameters("@tim") = DateAdd("n", 3, Now()) ' <---- 3 minutes to completion cmd.Execute Set cmd = Nothing End If End If ' display completed tasks Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT name FROM worktasks WHERE completed",con Response.Write "Completed:" & vbCrLf Response.Write "<ul>" & vbCrLf Do While Not rs.EOF Response.Write "<li>" & rs("name") & "</li>" & vbCrLf rs.MoveNext Loop Response.Write "</ul>" & vbCrLf rs.Close ' display tasks in progress Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT name,completetime FROM worktasks WHERE NOT completed",con Response.Write "In progress:" & vbCrLf Response.Write "<ul>" & vbCrLf Do While Not rs.EOF Response.Write "<li>" & rs("name") & " will be done in " & DateDiff("n", Now(), rs("completetime")) & " minutes</li>" & vbCrLf rs.MoveNext Loop Response.Write "</ul>" & vbCrLf rs.Close con.Close Set rs = Nothing Set con = Nothing %> Add: <form method="post"> Name: <input type="text" name="name"> <br> <input type="submit" Value="Save"> </form>
(jeg har brugt Access og ikke MySQL, men det er bare at skifte driveren)
Er det muligt, at få den til at tælle med sekunder/minutter? Samtidig spurgte jeg efter en nedtæller som tæller automatisk. Altså, en nedtæller hvor man ikke behøver sidde og opdatere for at se hvornår bygningen er færdig. Er det muligt?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.