@green176

Как вывести из БД в select php?

Подскажите, есть БД, таблицы студенты и группы. Не понимаю, как сделать выпадающий список групп при создании записи. В моделе создал функцию, которая вытаскивает из базы список групп, но понятия не имею как записать всё это в шаблон вида.

модель
function all_groups($connect){
        $query = "SELECT * FROM `students` JOIN `groups` WHERE students.sgroup = groups.gid";
        $result = mysqli_query($connect, $query);
        
        if(!$result)
            die(mysqli_error($connect));
        
        $num = mysqli_num_rows($result);
        $allg = array();
        
        for($i=0; $i<$num; $i++){
            $row = mysqli_fetch_assoc($result);
            $allg[] = $row;
        }
        
        return $allg;
    }

фреймворк не использую
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
sergiula
@sergiula
function get_user_groups()
{
    $out = [];
    $query = "SELECT groups.gid, groups.name FROM  `groups` ";
    $result = mysqli_query($connect, $query);
    // todo тут проверки на результат
    while ($row = mysql_fetch_assoc($result)) {
         $out[$row["gid"]] = $row["name"];
    }
    return $out;
}
$groups = get_user_groups();

// Это встраиваем в форму
echo "<select name='sgroup'>";
echo "<option value="0">Выберите группу</option>";

// если мы редактируем студента и у нас уже есть группа, то при загрузке формы мы можем выбрать элемент
$student['sgroup'] = 2;
foreach($goups as $key => $value) {

    echo "<option value='" . $key . "' ". ($key ==$student['sgroup'] ? "selected" : "" ) . ">" . $value . "</option>";
}
echo "</select>";

// при submit'e формы sgroup записывай в базу пользователей
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
mannaro
@mannaro
Умею профессионально гуглить
Пока к нам едет мой личный экстрасенс, расскажите, какой фреймворк используете, покажите кусочек кода. Одним словом, дайте больше информации.
Ответ написан
Uwe_Boll
@Uwe_Boll
Я Злой и Страшный Уве Болл в Разработке знаю Толк
$all_groups = all_groups($connect);
if(!is_array($all_groups){
echo ' Бяда Пячаль';
}else{
foreach($all_groups as $item){
тут option's
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы