我真的希望有人能帮我。我目前正在用经典的asp编写代码,我使用的是sql数据库。
我们有一个支持页面,它使用网络登录id将所有访问记录到sql表中。这就是我的问题所在。
我需要显示前10名最高的网页访问者和前10名最低使用的访问者。例如,如果您看到下面的内容,这与我希望看到页面上的数据的方式类似:
访客访问
约翰50
莎拉45
提姆40
杰森35
亚历克斯30
罗布25
伊莱恩20
我一辈子都搞不懂怎么得到这些信息。我只想知道所有来访者的总数。现在,我们有了数据库中的数据。我只是不知道如何将每个访问者的总数放在一个页面上,然后将布局从最多的访问量设置为最少的访问量。从网上搜索到这里,我都试过了。没有什么能给我所需要的东西让它工作。我甚至尝试过使用count和total的不同方法,但是,唯一成功的查询是total visits overall,我只需要按visitor列进行细分。有人能帮我吗?
更新:
根据回答,我不确定要提供什么代码。我没有任何代码。我只是想用asp classic编写一种方法,从特定列中查询每个值的总计数。例如,如果名字“james”访问了站点10次,而数据库保存了他10次,我想在asp上查询这个总数。我不知道如何从数据库中获取列中每个名字的访问次数,并获得他们的总访问量。
更新2:
好的,这是我根据网上的其他资源建议尝试处理的代码:
Set Logs = Connect.Execute ("SELECT COUNT(*) AS VISITOR FROM dbo.Tracking GROUP BY VISITOR
3条答案
按热度按时间s8vozzvw1#
因为我不帮忙而被批评。。。
@kwnwzlnd为您提供了数据库查询部分的拼图,但从您所说的问题,你不知道如何把它放入一个asp页面好这里是一个例子。
先有点背景
经典的asp开箱即用使用脚本语言vbscript,它严重依赖com组件来提供扩展功能,比如与数据库对话。在vbscript世界中,实现这一点的库称为ado(activex数据对象),是mdac(microsoft数据访问组件)的一部分。
adodb提供对对象的访问,这些对象允许您对数据库执行复杂的操作,这些对象包括(除其他外);
ADODB.Connection
-表示到数据源的打开连接。ADODB.Recordset
-表示基表中的整个记录集或已执行命令的结果。在任何时候,recordset对象都只引用集合中的一条记录作为当前记录。ADODB.Command
-定义要针对数据源执行的特定命令。一个基本的例子
提供的代码未经测试
如果我这样做的话,我会做一些不同的事情,这只是一个起点,向前看,我肯定会推荐使用
GetRows()
方法ADODB.Recordset
返回二维Array
这样您就可以关闭数据库连接并继续使用数据,而不需要数据库开销。记住
即使是这个简单的例子,它可能会提出更多的问题,然后回答。
qvsjd97n2#
对不起,sql不是mysql
我想你得把名字分组,然后数一数。选择按count desc和asc排序的前10个。
更新1
mysql使用limit而不是top(@w3schools):
mitkmikd3#
我只想说谢谢大家的帮助。在op得到答复后的几天,我想出了一个办法,使您的建议适合我的业务需要。我想和大家分享一个我在你的帮助下工作的例子。
我在sql中使用了一种特定的日期格式,必须将日期更改为数组才能工作。我甚至可以增加军衔!我知道这看起来很业余,但很管用。现在我明白了它的工作原理。再次感谢你的帮助。
下面是一个例子,以防有人感兴趣(我知道有点晚了,但我想我会分享):