Я разрабатываю систему чата, где студенты и сотрудники могут обмениваться различными сообщениями.Я разработал базу данных, в которой у нас есть пять таблиц: таблица персонала, студент, сообщение и две таблицы сопоставления staff_message и stu_message.Эти таблицы содержат только идентификатор студента / персонала и идентификатор сообщения.
Моя проблема в том, что я не могу заказать сообщения.Я имею в виду, что я не могу понять, как я могу сделать один оператор SQL, который будет возвращать все сообщения и упорядочиваться, например, по идентификатору.Код, который я сделал, выглядит следующим образом:
$qu = mysqli_query($con,"SELECT * FROM stu_message");
while($row7 = mysqli_fetch_assoc($qu)){
$que = mysqli_query($con, "SELECT * FROM student WHERE studentid =".$row7['stu_id']);
while($row8 = mysqli_fetch_assoc($que)) {
$username = $row8['username'];
}
$query3 = mysqli_query($con, "SELECT * FROM message WHERE id=".$row7['mid']);
while($row6 = mysqli_fetch_assoc($query3)) {
echo $row6['date']."<strong> ".$username."</strong> ".$row6['text']."<br>";
}
}
$query2 = mysqli_query($con, "SELECT * FROM staff_message");
while($row3 = mysqli_fetch_assoc($query2)){
$query = mysqli_query($con, "SELECT * FROM staff WHERE id =".$row3['staff_id']);
while($row5 = mysqli_fetch_assoc($query)) {
$username = $row5['username'];
}
$query3 = mysqli_query($con, "SELECT * FROM message WHERE id=".$row3['m_id']);
while($row6 = mysqli_fetch_assoc($query3)) {
echo $row6['date']."<strong> ".$username."</strong> ".$row6['text']."<br>";
}
}
?>
Результат отличается от того, что я хочу.Чтобы быть более конкретным, сначала показывают сообщения от студентов, а затем от сотрудников.У меня вопрос, есть ли какой-нибудь запрос, который может объединить в основном все эти четыре таблицы в одну, и все сообщения будут показаны в правильном порядке?например по идентификатору?Заранее спасибо!