PHP版本7如果我通过添加组得到错误?

PHP版本7如果我通过添加组得到错误?,php,mysql,group-by,greatest-n-per-group,Php,Mysql,Group By,Greatest N Per Group,一切正常,但若我将GROUP BY MESSAGESUSONER添加到ORDER BY messagedate DESC,则在尝试获取中的非对象属性时会出错。。。。我哪里错了?…,你能更正代码,看看它看起来怎么样。。。求你了,我需要这个,我整天都在忙。。 请不要太多的描述,我的英语不是最好的。Thx PHP版本:7 表: 使用者 用户名、电子邮件、密码、名字、姓氏、头像 用户公寓 用户居住ID,用户居住ID,州,市 用户信息 messagesID,messagesuseronid,message

一切正常,但若我将GROUP BY MESSAGESUSONER添加到ORDER BY messagedate DESC,则在尝试获取中的非对象属性时会出错。。。。我哪里错了?…,你能更正代码,看看它看起来怎么样。。。求你了,我需要这个,我整天都在忙。。 请不要太多的描述,我的英语不是最好的。Thx

PHP版本:7

表:

使用者

用户名、电子邮件、密码、名字、姓氏、头像

用户公寓

用户居住ID,用户居住ID,州,市

用户信息

messagesID,messagesuseronid,messagesusertwoID,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";
                 }
                 }

SELECT子句中出现的所有未调用的表达式必须出现在GROUP BY子句中,或者在功能上依赖于GROUP BY子句中出现的表达式。否则,GROUP BY查询是无效的SQL

在5.7.5版本之前,MySQL曾经接受无效的GROUP BY查询,但保留了查询权限。这意味着,当针对包含相同数据的不同数据库实例运行时,此类无效查询可能会返回不同的结果,例如,现在您的数据库与移动到不同服务器或从备份还原的数据库


因为SQL查询无效,下一条语句$result->num\u rows会触发错误。

如果您显示不起作用的代码,会更有帮助。。。。。。哪一组?错误是什么?你知道,我们不是读心术的人。按MAXdate点菜?如何按列或日期的最大值排序?日期从何而来?PHP是无罪的。由于查询的分组变得无效SQL,$con->query$SQL返回FALSE。您的问题仍然缺少所需的输出。如果没有这一点,你的问题就脱离主题了,建议对代码进行必要更改的答案是不可能的,或者是推测性的;尝试在中获取非对象的属性j。你的问题基本上是我错在哪里?。这个答案很好地回答了这个问题:-如果您想要一个代码更改建议,请修改您的问题,以便您想要的输出变得清晰。否则,狮子的答案应该被接受。在不了解表结构的情况下,很难提出解决方案。另外,您在问题中没有提到查询将返回什么。您能否更正代码,看看它看起来如何。。。求你了,我需要这个,我整天都在忙。。