Вывод одного значения из mysqli query SELECT с условием
Мне нужно выводить логин учителя из базы учеников каждую итерацию цикла. Проблема в том, что разные функции воспринимают этот запрос по разному - как объект или булиновое значение
<?php
$teacherquery = "SELECT `teacher` FROM `users` WHERE login = $student";
$resultteacher = mysqli_query($conn, $sqluser);
?>
Выводит как булиновое значение. Как вывести значение которое находится в базе данных? До этого я перерыл весь стаковерфлоу на английском и не нашёл ответа - проблемы были похожие, но не точь в точь. Отсутствовало условие WHERE или брали целый массив данных, а не как у меня - одно значение с одним условием.
Ответы (1 шт):
Ответ из бд нужно преобразовать в массив с помощью fetch_array или, в случае выборки нескольких записей, fetch_all.
Например:
Подключение бд.
$mysqli = new mysqli("localhost", "my_user", "my_password", "bd_name");
Делаем сам запрос.
$resultteacher = $mysqli->query("SELECT `teacher` FROM `users` WHERE `login` = '". $student ."'");
Проверяем выбрало ли хоть что-то и преобразовываем в массив.
if ($resultteacher->num_rows != 0) {
$teachers_array = $resultteacher->fetch_array(MYSQLI_ASSOC);
}
Теперь наш ответ из БД спрятан в
$teachers_array['teacher']
Если же мы использовали fetch_all, то в
$teachers_array[0]['teacher']
И еще, не нужно делать запросы циклом, это очень плохо влияет на производительность БД в целом. Учите sql и делайте развернутый запрос с выборкой всех нужных записей.