Заполните выпадающий список из другой таблицы MySQL - php

0

Я хочу заполнить список курсов внутри выпадающего списка, но с помощью идентификатора из таблицы учеников выберите его значение на странице редактирования.

База данных

course
+----+-------------+
| id | course_name |
+----+-------------+
| 1  | English     |
| 2  | Math        |
| 3  | Social      |
| 4  | Arts        |
| 5  | History     |
+----+-------------+

student
+----+--------+-----+--------+
| id | name   | age | course |
+----+--------+-----+--------+
| 1  | John   | 25  | 1      | /* English */
| 2  | Robert | 24  | 3      | /* Social */
| 3  | Nancy  | 21  | 4      | /* Arts */
+----+--------+-----+--------+  

Я заполняю базу данных таблицы курса в раскрывающемся списке, как это, на странице создания новой студентки.

Создать нового студента

$dropdown_query = "SELECT * FROM course";

// other codes

echo "<select name='course' value='' required/>";
    echo "<option value=''> Select the Course </option>";
    foreach (mysqli_query($con, $dropdown_query) as $row){
        echo "<option value='".$row['id']. "'> $row[course_name] </option>";
    }
echo "</select>";   

// other codes

Выход HTML

┌────┬────────┬─────┬─────────┬────────┐
│ id │  name  │ age │ course  │  Edit  │
├────┼────────┼─────┼─────────┼────────┤
│  1 │ John   │  25 │ English │ [Edit] │
│  2 │ Robert │  24 │ Social  │ [Edit] │
│  3 │ Nancy  │  21 │ Arts    │ [Edit] │
└────┴────────┴─────┴─────────┴────────┘

Редактировать страницу для учащихся

Я застрял здесь

$id = '';
if( isset( $_GET['id'])) {
    $id = $_GET['id'];
}

$dropdown_query = "SELECT * FROM course";
$result = mysqli_query($con, $dropdown_query);

echo "<select name=course value=''> Course </option>";
    while ($row = mysqli_fetch_array($result)) {
        if($row['id'] == $id){
            echo "<option value='".$row['id']. "' selected> $row[course_name] </option>";
        } // if
        else{
            echo "<option value='" .$row['id']. "' >$row[course_name]</option>";
        } // else
    } // while
echo "</select>";

код выше генерирует курс внутри выпадающего списка, но значение не выбрано. Я хочу объединить две таблицы в одну из раскрывающегося списка.

Пожалуйста, помогите мне!

  • 0
    ваш вариант отображается в избранном?
  • 0
    Так, например, вы хотите, чтобы у ваших options было как Student Name - Course Name ?
Показать ещё 2 комментария
Теги:

2 ответа

1
Лучший ответ

Предполагается, что у вас есть объект $student который является строкой от students соответствующих текущему пользователю.

$dropdown_query = "SELECT * FROM course";
$courses = mysqli_query($con, $dropdown_query);

echo '<select name="course">';
    while ($course = mysqli_fetch_array($courses)) {
        echo "<option value='{$course['id']}'".($student['course']==$course['id'] ? ' selected="selected"' : '').">{$course['course_name']}</option>";
    } // while
echo '</select>';
  • 0
    Спасибо за помощь, значение выбирается на основе идентификатора. Но когда я редактирую и сохраняю новый курс, изменения не принимаются. Любая идея.
  • 0
    Извините, за вопрос выше. это исправлено. Это был вопрос стоимости.
0

Попробуй это

echo "<select name=course value=''> Course </option>";
//ADD EMPTY ELEMENT SO YOU CAN SEE SELECTED ELement
echo "<option value=''> Your Course </option>";
    while ($row = mysqli_fetch_array($result)) {
        if($row['id'] == $id){
            echo "<option value='".$row['id']. "' selected> $row[course_name] </option>";
        } // if
        else{
            echo "<option value='" .$row['id']. "' >$row[course_name]</option>";
        } // else
    } // while
echo "</select>";
  • 0
    Это заполнит выпадающий список, но как выбрать правильное значение.
  • 0
    echo "<option value='".$row['id']. "' selected> $row[course_name] </option>" выберет правильное значение.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню