Forum > ASP > Generella frågor
Hej,
Jag håller på och vill ta fram statestik från en sak i databasen som ser ut såhär:
Tabell: tb_songs
fält:
sname
smp3
syear
Jag vill hämta statestik från tabellen tb_songs och fältet smp3 men det funkar inte, såhär gör jag:
Dim intTotalMp3s
Call GetCount(intTotalMp3s, "tb_songs", " WHERE smp3 ")
Hur ser funktionen GetCount() ut?
Hur ser funktionen GetCount() ut?
Såhär:
Function GetCount(ByRef str, tbl, sql)
str = objConn.Execute("SELECT COUNT(*) FROM "& tbl & sql).Fields(0)
End Function
Så din SQL rad kommer att se ut såhär:
SELECT COUNT(*) FROM tb_songs WHERE smp3
Vad ska smp3 vara? True/False? Annat värde? Dvs smp3 = 1?
Nu vet jag inte hur ditt upplägg ser ut, om du har funktionen i samma fil eller extern. Men din funktion returnerar inte heller någon data. Du kanske ska testa skriva så här:
Function GetCount(ByRef str, tbl, sql)
str = objConn.Execute("SELECT COUNT(*) FROM "& tbl & sql).Fields(0)
GetCount = str
End Function
funktionen finns i en extern fil. Jag har flera statestik där jag vill lägga till smp3 och de ser ut såhär:
<%
Dim intTotalMembers
Dim intTotalMembersUn
Dim intTotalMembersToday
Dim intTotalMembersYesterday
Dim intTotalDownloads
Dim intTotalDownloadsToday
Dim intTotalDownloadsYesterday
Dim intTotalSongs
Dim intTotalMp3s
Dim intTotalArtist
Dim intTotalAlbum
Dim intTotalComments
Call GetCount(intTotalMembers, "tb_members", "")
Call GetCount(intTotalMembersUn, "tb_members", " WHERE mactive = 0")
Call GetCount(intTotalMembersToday, "tb_members", " WHERE DATE(mlastlogin) = '"& Date() &"'")
Call GetCount(intTotalMembersYesterday, "tb_members", " WHERE DATE(mlastlogin) = '"& DateAdd("d", -1, Date()) &"'")
Call GetCount(intTotalDownloads, "tb_downloads", "")
Call GetCount(intTotalDownloadsToday, "tb_downloads", " WHERE ddate = '"& Date() &"'")
Call GetCount(intTotalDownloadsYesterday, "tb_downloads", " WHERE ddate = '"& DateAdd("d", -1, Date()) &"'")
Call GetCount(intTotalSongs, "tb_songs", "")
Call GetCount(intTotalMp3s, "tb_songs", " WHERE smp3 ")
Call GetCount(intTotalArtist, "tb_artists", "")
Call GetCount(intTotalAlbum, "tb_albums", "")
Call GetCount(intTotalComments, "tb_albumcomment", "")
%>
Om fältet smp3 är av typen varchar så måste du ju ha något värde att jämföra med:
SELECT COUNT(*) FROM tb_songs WHERE smp3 = 'något här'
Eller att du kontrollerar att den inte är null eller liknande, t.ex.:
SELECT COUNT(*) FROM tb_songs WHERE smp3 != null
SELECT COUNT(*) FROM tb_songs WHERE smp3 != ''