webForumDet fria alternativet

Visar inte dagens inlägg?

10 svar · 335 visningar · startad av Bosse168

Bosse168Medlem sedan nov. 20031 018 inlägg
#1

Någon som vet vad det är för fel på denna koden den visar inte dagens inlägg fast det har kommit in nya.
databasen är MySQL

sql2 = "SELECT 'postid' , COUNT(postid), 0 from forumpost WHERE diskusid = '"& Rs("diskusid") &"'"& _
" union all"& _
" SELECT 'postid', COUNT(postid),0 FROM forumpost WHERE  diskusid = '"& Rs("diskusid") &"'"& _
" AND datum>'" & DateAdd("d",-1,Date()) & "'"

set rsT = connect.execute(sql2)

response.write "Totalt: " & rsT(1)  & " <br>Idag: " & rsT(2)

rsT.Close : Set rsT=nothing
Jesper TMedlem sedan nov. 20017 144 inlägg
#2

1. Varför SELECT 'postid'... och inte SELECT postid...?
2. Varför diskusid = '"& Rs("diskusid") &"'"& _... och inte diskusid = "& Rs("diskusid") & _...?

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Jag skulle gissa att problemet hör samman med datumformat. Mysql kan enbart hantera yyyymmdd eller yyyy-mm-dd. Du kan ju skriva ut den färdiga frågan och se.

Det är bättre att använda de datumfunktioner som finns i SQL direkt.

sql2 = "SELECT 'postid' , COUNT(postid) from forumpost WHERE diskusid = '"& Rs("diskusid") &"'"& _
" union all"& _
" SELECT 'Dagens', COUNT(postid),0 FROM forumpost WHERE  diskusid = '"& Rs("diskusid") &"'"& _
" AND datum> add_date(current_date,interval -1 day)

Jag håller också med Jesper att om diskusid är en numerisk kolumn så skall du inte ha ' omkring värdet.

Bosse168Medlem sedan nov. 20031 018 inlägg
#4

och har tagit bort '
men jag får detta fel mess:

Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]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 '(current_date,interval -1 day)' at line 1

använder MySQL 4

Engine^Medlem sedan dec. 20003 887 inlägg
#5

Heter inte funktionen DATE_ADD() el. ADDDATE()?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Jo, adddate skall det vara. Jag skyller på att Mysql inte följer standard utan hittar på egna funktioner helt i onödan.

Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Adddate.... trippelstavning?! :o

Bosse168Medlem sedan nov. 20031 018 inlägg
#8

nu får jag detta fel mess istället:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[TCX][MyODBC]The used SELECT statements have a different number of columns

@ndersMedlem sedan juni 200032 969 inlägg
#9

Då får du väl se till så det är lika många kolumner i de båda SELECT-frågorna i din UNION. Prova att ta bort ,0 från den andra.

Bosse168Medlem sedan nov. 20031 018 inlägg
#10

Det funkade men när jag sedan försöker skriva ut dom blir det knas:

response.write "Totalt: " & rsT(0)  & " <br>Idag: " & rsT(1)

Då dlir det så här:
Totalt: postid
Idag: 1636

@ndersMedlem sedan juni 200032 969 inlägg
#11

Det är för att datat inte ser ut så. :)
Det är ju två olika poster, inte olika kolumner.

response.write "Totalt: " & rsT(1)  
rsT.movenext
Response.write " <br>Idag: " & rsT(1)

Mvh

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