php - 将 SUM(tbl_column) 与 $print 一起使用时未定义常量

标签 php mysql

我正在使用 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

我想要实现的是:

  1. 消除表中的重复用户。
  2. 统计分数列并向用户显示组合分数。

例子

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 语句更改为使用 SUM 时,它会生成一个

Warning: Use of undefined constant points - assumed 'points' (this will throw an error in a future version of PHP) on line 27

此查询示例还将 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 行有关,这将是点的回显。

提前致谢!

最佳答案

您需要为 SUM 列添加一个别名,以使用名称 points...

$result = $wpdb->get_results ( "SELECT user_id, name, email, SUM(points) as points FROM db_tbl order by points DESC" ); 

您可能会发现名称类似于 SUM(points),但添加别名会更容易。

关于php - 将 SUM(tbl_column) 与 $print 一起使用时未定义常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010719/

相关文章:

javascript - 如何提交由jQuery生成的HTML多个表单

javascript - 如何在 echo php 函数调用中使用 js 变量?

php - 未捕获的异常 'ErrorException',消息为“错误的 SQL : INSERT INTO”

mysql - 从动态列表python创建mysql表

php - 手动将mysql查询结果缓存到txt文件

php - 如何在laravel中将数组中属性的JSON字符串值作为JSON数组返回

php - 客户端如何在ssl连接中生成公钥?

php - PHP 和 Mysql 中的非常基本的问题

php - 如何防止 PHP 中的 SQL 注入(inject)?

mysql - Ant: i/o 重定向 "must not contain the ' <' character"