Вывод одного значения из mysqli query SELECT с условием

Мне нужно выводить логин учителя из базы учеников каждую итерацию цикла. Проблема в том, что разные функции воспринимают этот запрос по разному - как объект или булиновое значение

<?php
$teacherquery = "SELECT `teacher` FROM `users` WHERE login = $student";
    $resultteacher = mysqli_query($conn, $sqluser);
?>

Выводит как булиновое значение. Как вывести значение которое находится в базе данных? До этого я перерыл весь стаковерфлоу на английском и не нашёл ответа - проблемы были похожие, но не точь в точь. Отсутствовало условие WHERE или брали целый массив данных, а не как у меня - одно значение с одним условием.


Ответы (1 шт):

Автор решения: Dmitriy Khomiak

Ответ из бд нужно преобразовать в массив с помощью 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 и делайте развернутый запрос с выборкой всех нужных записей.

→ Ссылка