• 9982阅读
  • 203回复

2016年1月15日:修正电脑版论坛统计数据主题数和帖子数误差(部分与拆分操作有关) [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 38楼 发表于: 2019-01-19 07:33:58 星期六  点亮(0)
由于回帖后,论坛站点信息和pw_forumdata(尽管目前的数据还不准确)里面的数据是同步更新的,所以现在回复也不影响原来的统计。还是以35楼截图数据为准,现在的数据只要减去今天相应的发帖数即可。

那么我们现在可以开工了,先计算35楼截图里面的帖子总数。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 39楼 发表于: 2019-01-19 07:43:23 星期六  点亮(0)
手机上加了一遍主题数(topic),总和2376。这个主题数一直都是准确的,就是不知道为什么帖子总数会有问题。经过思考,我觉得应该和帖子拆分有关,准确的说是把帖子拆分到别的版块后,目标版块的帖子数可能并没有更新(指pw_forumdata里面的数据),至于源版块怎么变化的,目前还没想到。当然,现在这个只是猜测,等上面的研究结束后会做相应测试。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 40楼 发表于: 2019-01-19 07:46:57 星期六  点亮(0)
还有可能跟主题移动有关,但是我觉得这个可能性要小些。
所有的想法都需要测试证明。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 41楼 发表于: 2019-01-19 08:36:59 星期六  点亮(0)
研究了半天,感觉有点儿麻烦啊。由于33(版块fid,下同)和18是15的子版块,32是14的子版块,19、28、40是47的子版块,所以这六个版块的帖子数不能算进总计里面,因为如版块信息里面的数据“今日: 0|主题: 69| 总帖数(含子版): 467”是含有子版块的帖子数的。除去这六个版块,其余总和为32504,和站点信息对应。不记得了,可能站点信息就是从这个表里获取的数据。然而,47帖子为3350帖,19+28+40=3320帖,这里面就统计差了30帖。所以说,麻烦啊。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 42楼 发表于: 2019-01-19 08:56:49 星期六  点亮(0)
不记得了,可能站点信息就是从这个表里获取的数据。
index.php
  1. if (!Perf::checkMemcache() || !$_tmpForums){
  2.     $query = $db->query("SELECT f.fid,f.name,f.type,f.childid,f.fup,f.logo,f.descrip,f.metadescrip,f.forumadmin,f.across,f.allowhtm,f.password,f.allowvisit,f.showsub,f.ifcms,fd.tpost,fd.topic,fd.article,fd.subtopic,fd.top1,fd.lastpost FROM pw_forums f LEFT JOIN pw_forumdata fd USING(fid) WHERE f.ifsub='0' AND f.ifcms!=2 $sqlwhere ORDER BY f.vieworder");
  3.     $_tmpForums = array();
  4.     while ($forums = $db->fetch_array($query)) {
  5.         $_tmpForums[$forums['fid']] = $forums;
  6.     }
  7.     !$cateid && Perf::checkMemcache() &&  $_cacheService->set('all_forums_info', $_tmpForums, 300);
  8. }
  9. foreach ($_tmpForums as $forums) {
  10.     if ($forums['type'] === 'forum') {
  11.         if ($forums['showsub'] && $forums['childid']) {
  12.             $showsub[$forums['fid']] = '';
  13.         }
  14.         $forums['topics'] = $forums['topic'] + $forums['subtopic'];
应该是的,这个不研究了:只要 pw_forumdata表里的数据准确了,自然其它需要从这个表里获取数据的地方的数据都是准确的。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 43楼 发表于: 2019-01-19 10:19:48 星期六  点亮(0)
添加本版块帖子数记录字段
  1. ALTER TABLE `pw_forumdata` ADD `benban` int(10) NOT NULL DEFAULT '0' AFTER `article`
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 44楼 发表于: 2019-01-19 12:03:32 星期六  点亮(0)
研究了快两个小时的代码(查看加自写,测试),都没能实现让文件自动更新楼上的本版帖子数记录benban。主要应该是require/updateforum.php,里面写有各种函数,比如:
  1.         $rs       = $db->get_one("SELECT COUNT(*) AS topic,SUM( replies ) AS replies FROM pw_threads WHERE fid=".S::sqlEscape($fid)."AND ifcheck='1' AND topped<=3");
  2.         $topic    = $rs['topic'];
  3.         $replies  = $rs['replies'];
  4.         $article  = $topic + $replies + $subtopics + $subrepliess;
这部分代码就应该是计算主题数,回复数,帖子总数(包括子版块的主题数和回复数)。

所谓的30楼的研究成果也是前两天受这个文件内容启发所写。既然不能自动更新,那这个benban只能是手动更新,做为检查和更新的依据。具体文件内容就是最笨的穷尽法了,也就是把30楼的代码稍加修改,把目前在用的所有版块fid代进去,一个版块一部分代码,有多少版块就有多少部分。
=================分隔线====================
完整代码见172楼。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 45楼 发表于: 2019-01-19 12:15:56 星期六  点亮(0)
好了,开始写文件。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 46楼 发表于: 2019-01-19 15:06:55 星期六  点亮(0)
本地测试终于完成了,由于父版块包含的子版块并不相同,所以出现了小插曲,瞎忙活了一阵子,原因是论坛数据不同步,如果一致的话也就不会出现这种低级错误了。好了,备份数据,恢复到本地测试论坛,再次测试下。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 47楼 发表于: 2019-01-19 15:30:50 星期六  点亮(0)
开始恢复数据,接下来的操作可以说是完全模拟在本站实际操作了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!