webForumDet fria alternativet

Skapa ny post om datumet ej stämmer

ASP

7 svar · 255 visningar · startad av calson

Medlem sedan dec. 2003487 inlägg
Frågan#1

Jag vill föra statestik per dag men har lite problem.
I min databas har jag en post och datumet för den posten är gjort som den skapades igår. Vad jag än prövar så updateras bara den post som har senast datum, även om datumet är en vecka gammalt.

  sql = "select dtmDatum, id from tblCounter Order by dtmDatum Desc"
  set rs = conr.execute(sql)

  intId = rs("id")
  dtmDatum = rs("dtmDatum")

  rs.close : set rs = nothing

  If dtmDatum < Date Then

    If intUnik = 1 Then
      conr.Execute("Update tblCounter Set intUnika=intUnika+1, intTotalt=intTotalt+1 Where id=" & intId)
    Else
      conr.Execute("Update tblCounter Set intTotalt=intTotalt+1 Where id=" & intId)
    End If

  Else
    dtmDatum = Date

    If intUnik = 1 Then
      conr.Execute("Insert Into tblCounter Set intUnika=intUnika+1, intTotalt=intTotalt+1, dtmDatum='" &dtmDatum &"'")
    Else
      conr.Execute("Update tblCounter Set intTotalt=intTotalt+1 Where id=" & intId)
    End If

  End If

Tack på förhand

Medlem sedan dec. 20003 887 inlägg
#2

Jaa? Du plockar ju ut det senaste datumet och kollar om det är mindre än dagens datum.

I övrigt förstår jag inte riktigt vad du frågar efter... jag skyller på att jag är trött :)

Medlem sedan dec. 2003487 inlägg
#3

Precis.
Jag plockar ut det senaste datumet och kollar om det är dagens ellse tidigare.
Om det inte är dagens vill jag skapa en ny post (Inster) med det dagens datum.

Om det visar sig vara dagens datum så skall posten uppdateras och unika/totala fälten uppdateras med 1 (Update)

Jag är trött själv så jag kanske skriver oförstårligt :)

Medlem sedan dec. 2003487 inlägg
#4

Ingen som kan hitta något fel? :(

Medlem sedan dec. 20003 887 inlägg
#5

Humm... så här tolkar jag ditt problem.

strSql = "SELECT TOP 1 dtmDatum, id FROM tblCounter ORDER BY dtmDatum DESC"

Set objRS = objConn.Execute(strSql)

dtmDatum = rs("dtmDatum")
intID = rs("id")

objRS.Close : Set objRS = Nothing

If DateDiff("d", Date, dtmDatum) < 0
  strSql = "INSERT INTO ..."
Else
  strSql = "UPDATE ..."
End If

Du behöver bara stoppa in din intUnik-ifsats, vad nu den gör.

Medlem sedan dec. 2003487 inlägg
#6

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '1 dtmDatum, id FROM tblCounter ORDER BY dtmDatum DESC' at line
/clurre/statistik/counter.asp, line 22

Rad 22 är Set rs = conr.Execute(Sql)

Medlem sedan dec. 2003487 inlägg
#7

Så jag antar att det inte gick med den sql frågan

Jag tog bort Top 1 från sql frågan. Då lästes hela skriptet igenom men den vägrar fortfarande att lägga till en ny post när datumet inte stämmer.

Jag kan inte se något fel, sjukt irreterande

Medlem sedan dec. 2003487 inlägg
#8

Åhh va sur jag blir.
Man gör alltid det svårare än vad det är :)

Här är min lösning som verkar funka fin fint

  Sql = "SELECT dtmDatum, id FROM tblCounter Where dtmDatum='" &Date &"'"
265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)