php版本7如果我添加了组,我会得到错误吗?

dy1byipe  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(326)

一切正常,但如果我添加groupbymessagesuserone到orderbymessagedatedesc,我会得到一个错误 Trying to get property of non-object in ... . 我哪里错了?…,你能纠正代码,看看它看起来怎么样。。。拜托,我需要这个,我一整天都在忙。。请不要太多描述,我的英语不是最好的。谢谢。
php版本:7
table:
用户
用户名、电子邮件、密码、名字、姓氏、头像
住宅用户
用户\住宅ID,住宅ID,州,市
用户\u消息
messagesid,messagesUserId,messagesUserWoId,message,messagedate,messageread

if(isset($_SESSION['userID'])){
$user = $_SESSION['userID'];

$sql = "SELECT messagesusertwoID, messagesuseroneID, messagedate,
messageread, SUM(messageread) AS messageread_sum, 
userID, firstname, lastname, avatar, state, city  FROM users_messages 
LEFT JOIN users ON userID = messagesuseroneID 
LEFT JOIN users_residence ON userresidenceID = messagesuseroneID 
WHERE messagesusertwoID = '$user' 
GROUP BY messagesuseroneID ORDER BY messagedate DESC ";
                 $result = $con->query($sql);

                 if ($result->num_rows > 0) {
                 // output data of each row
                 while($row = $result->fetch_assoc())
                     {

                     echo   ''.$row["avatar"].'
                             '.$row["userID"].'
                             '.$row["firstname"].'
                             '.$row["lastname"].'
                             '.$row["state"].'
                             '.$row["city"].'
                             '.$row["messageread_sum"].'';

                 }
                 } else {
                 echo "0 results";
                 }
                 }
eoigrqb6

eoigrqb61#

中出现的所有表达式 SELECT 不是调用的子句 GROUP BY 聚合函数必须出现在 GROUP BY 子句或在功能上依赖于 GROUP BY 条款。否则 GROUP BY 查询是无效的sql。
在5.7.5版本之前,mysql通常接受无效的 GROUP BY 但它保留返回不确定数据的权利。这意味着这样一个无效的查询在对包含相同数据的不同数据库示例运行时可能会返回不同的结果(例如,您的数据库现在与您的数据库移动到不同的服务器或从备份还原)。
因为sql查询无效, $con->query($sql) 退货 FALSE 下一个声明呢( $result->num_rows )触发错误。

相关问题