我正在使用提供的 Active Record 类从 ExpressionEngine 中的 MySQL 数据库中汇总两个不同的行及其字段值(forum_total_topics 和 forum_total_posts)。我尝试了多个版本的代码来总结数字。我试图通过说将 MySQL 查询传递给请求,但失败了。
$SQL = "SELECT forum_id, sum(forum_total_topics) + sum(forum_total_posts)
FROM exp_forums"
ee()->db->select($SQL);
$query = ee->db->get('exp_forums');
echo $query;
回显总和,并得到以下错误:
错误号:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 '' 附近使用正确的语法
SELECT (SELECT SUM(forum_total_topics) + SUM(forum_total_posts) FROM (
exp_forums
)
乱七八糟的解决方案
因此,我尝试将整个请求拆分以找到解决方案。我终于通过返回多个数组并对它们求和来获得以下代码,但它看起来很混乱。如何,我可以在一行左右返回并总结表格中的两行吗?
$topics = ee()->db->select_sum('forum_total_topics')->get('exp_forums');
foreach($topics->result_array() as $topicrow) {
$totalTopics = $topicrow['forum_total_topics'];
}
$posts = ee()->db->select_sum('forum_total_posts')->get('exp_forums');
foreach($posts->result_array() as $postrow) {
$totalPosts = $postrow['forum_total_posts'];
}
$total = $totalTopics + $totalPosts;
任何建议将不胜感激!
尝试过的建议
我尝试过这样的建议,
$SQL = "SELECT forum_id, SUM(forum_total_topics + forum_total_posts) AS total
FROM exp_forums
GROUP BY forum_id";
$query = ee()->db->select($SQL);
echo $query;
用这个错误代替。
遇到 PHP 错误严重性:4096 消息:类 CI_DB_mysql_driver 的对象无法转换为字符串文件名:libraries/Functions.php(679):eval()'d 代码行号:98