我创建MySQL中的表下列:集团消息在PHP MySQL的
id - from_id - to_id - datetime - message
我的PHP代码:
$user = $_SESSION['user'];
$sql= "SELECT * FROM messages where to_id=".$user;
$result = $conn->query($sql);
echo "<table><tr><td>FROM</td><td>MESSAGE</td></tr>";
while($row=mysqli_fetch_assoc($result)){
$from = $row['from_id'];
$message = $row['message'];
if(count($from) >1){
echo "More than 1 message from ".$from;
}
echo "<tr><td>".$from."</td><td>".$message."</td></tr>";
}
echo "</table>";
我可以得到所有发送到用户的消息。但我也得到消息发送来自同一用户在不同的行。例如,如果user2发送了user1 4条消息,则列表中将列出所有4条消息。我只需要一行user2,当我点击行时,我会看到来自该用户的所有消息。但在这个页面上,我想看到最新的消息只有1行。
我该如何做到这一点?
您是否尝试过''from' from_id? – Tamil
请向我们展示一些样品数据和您想要的结果。 – Blank
**警告**:使用'mysqli'时,应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询中。 **不要**使用字符串插值或连接来完成此操作,因为您创建了严重的[SQL注入漏洞](http://bobby-tables.com/)。 **绝不**将'$ _POST'或'$ _GET'数据直接放入查询中,如果有人试图利用您的错误,这会非常有害。 – tadman