我正在使用SUM参数查询数据库以统计数据库表中的一列。例如,在不使用SUM参数的情况下,我得到以下结果:
UserID | Name | Email | points
-------+--------+------------------+-------
1 | name 1 | email1@email.com | 5
1 | name 1 | email1@email.com | 8
1 | name 1 | email1@email.com | 2
2 | name 2 | email2@email.com | 8
2 | name 2 | email2@email.com | 8
3 | name 3 | email3@email.com | 3
4 | name 4 | email4@email.com | 9
上面代码中使用的SQL语句:
SELECT *
FROM db_tbl
ORDER BY points DESC
我想要实现的是:
消除表中的重复用户。
对点列进行计数,并改为向用户显示组合点。
例子
UserID | Name | Email | points
-------+--------+------------------+-------
1 | name 1 | email1@email.com | 15
2 | name 2 | email2@email.com | 16
3 | name 3 | email3@email.com | 3
4 | name 4 | email4@email.com | 9
正在测试的 SQL 语句:
SELECT user_id, name, email, SUM(points)
FROM db_tbl
ORDER BY points DESC
我遇到的问题是当我将 SQL 语句更改为 use 时SUM,它会生成一个
警告:在第 27 行使用未定义的常量点 - 假定为“点”(这将在未来版本的 PHP 中引发错误)
此查询示例还将 points int 替换为单词points。
我还在学习PHP,并在下面发布了完整的代码以供参考。
function ctlTopUsers() {
global $wpdb;
$result = $wpdb->get_results ( "SELECT user_id, name, email, SUM(points) FROM db_tbl order by points DESC" );
foreach ( $result as $print ) {
echo '<table border="1">';
echo '<tr>';
echo '<th>Name</th>';
echo '<th>Email</th>';
echo '<th>Points</th>';
echo '</tr>';
echo '<tr>';
echo '<td>' . $print->name.'</td>';
echo '<td>' . $print->email.'</td>';
echo '<td>' . $print->points.'</td>';
echo '</tr>';
echo '</table>';
}
}
错误与第 27 行有关,该行将是点的回波。
牧羊人nacy