首先,问题的根源在于系统生成分页查询语句时出现了错误。我们需要对相关代码进行修改以修复这个问题。
打开文件 include/arc.memberlistview.class.php,在该文件中找到以下代码:
$countQuery = preg_replace("“/select[ \\\\r\\\\n\\\\t](.*)[ \\\\r\\\\n\\\\t]from/i”", "”Select count(*) as dd From”", $this->sourceSql);
$countQuery = preg_replace("#SELECT[ \\\\r\\\\n\\\\t](.*)[ \\\\r\\\\n\\\\t]FROM#is", 'SELECT COUNT(*) AS dd FROM', $this->sourceSql);
$countQuery = preg_replace("#ORDER[ \\\\r\\\\n\\\\t]{1,}BY(.*)#is", "", $countQuery);
### 为什么需要这样修改? 这段代码的作用是通过正则表达式调整 SQL 查询语句,使其更适合分页逻辑。原始代码中的正则表达式可能无法正确匹配某些复杂查询语句,导致返回的结果始终为零。新的正则表达式更加强大和灵活,可以适应更多场景。
此外,我们还移除了 ORDER BY 子句,因为计数查询并不需要排序操作,这样做不仅提高了查询效率,还能避免潜在的语法错误。
如果您按照上述步骤操作后仍然存在问题,建议检查数据库表结构是否完整,或者查看是否有其他插件干扰了分页逻辑。
希望这篇文章能够帮助到正在为此问题困扰的朋友!如果您还有其他关于 DedeCMS 的疑问,欢迎继续探索和学习。