У меня есть вопрос, который, вероятно, довольно простой, чтобы ответить на вопрос о вложении запроса MySQLi в другой запрос. Я не уверен, является ли это наилучшей практикой, и был бы признателен, если бы кто-то мог помочь, сообщив мне, хорошо ли работает приведенный ниже пример, или есть ли лучший способ сделать это.
Таблица 1: студенты
id | linked_teacher | student_name | student_age
1 | 1 | Bob Eaves | 15
2 | 1 | Ellen Robs | 11
3 | 2 | Will Tops | 7
4 | 3 | Scott Long | 13
Таблица 2: Учителя
id | teacher_name
1 | Mrs Green
2 | Mr Wood
3 | Dr Grey
4 | Professor Long
Мой PHP выглядит так, как показано ниже:
$sql = "SELECT linked_teacher, student_name, student_age FROM students";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$linked_teacher = $row["linked_teacher"];
$sql2 = "SELECT teacher_name FROM teachers WHERE teacher_name = $linked_teacher";
$result2 = $conn->query($sql2);
if ($result2->num_row > 0) {
while($row2 = $result2->fetch_assoc()) {
$teacher_name = $row2["teacher_name"];
}
}
echo "$row["teacher_name"]. " - ". $row["student_name"]. " - " . $row["student_age"]";
}
}
Это выведет следующее:
Mrs Green - Bob Eaves - 15
Mrs Green - Ellen Robs - 11
Mr Wood - Will Tops - 7
Dr Grey - Scott Long - 13
Теперь, хотя я ценю, что моему примеру на самом деле не нужны две таблицы, если я могу понять правильный способ ответа на этот пример, который, я уверен, я не сделал в своем решении, тогда я могу применить теорию к более сложному решения.
Заранее спасибо.