一切正常,但如果我添加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";
}
}
1条答案
按热度按时间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
)触发错误。