ich eine Tabelle in MySQL mit folgenden Spalten erstellt haben:Gruppe Messaging in php mysql
id - from_id - to_id - datetime - message
Mein PHP-Code ist:
$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>";
Ich kann alle Nachrichten an den Benutzer geschickt bekommen . Aber ich bekomme auch Nachrichten von demselben Benutzer in verschiedenen Zeilen. Wenn beispielsweise Benutzer2 Benutzer1 4 Nachrichten gesendet hat, sind alle 4 Nachrichten in dieser Liste aufgeführt. Ich möchte nur eine Zeile für den Benutzer2 und wenn ich auf die Zeile klicke, sehe ich alle Nachrichten von diesem Benutzer. Aber auf dieser Seite möchte ich nur 1 Zeile mit der letzten Nachricht sehen.
Wie kann ich das erreichen?
Haben Sie 'group by' aus_id versucht? – Tamil
Bitte zeigen Sie uns einige Beispieldaten und Ihr gewünschtes Ergebnis. – Blank
** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman