Обновите выпадающий список множественного выбора до базы данных MySQL без удаления всех существующих строк. - PullRequest
0 голосов
/ 28 октября 2018

Мне нужно обновить раскрывающийся список множественного выбора в базе данных, но без удаления всех существующих строк.
У меня есть две таблицы num и multipleselect.Который я перечислил ниже.

+--------+----------+
| num_id | num_name |
+--------+----------+
|      1 | One      |
|      2 | Two      |
|      3 | Three    |
+--------+----------+

Вот таблица, которую я хочу обновить numid.

+-------------------+-------------------------+-------+
| multipleselect_id | multipleselecttrackerid | numid |
+-------------------+-------------------------+-------+
|                14 | 5                       |     1 |
|                15 | 5                       |     3 |
+-------------------+-------------------------+-------+

Вот Edit код страницы

<?php
// PK table
$sqlNum = "SELECT * FROM num";
$resultNum = mysqli_query($con, $sqlNum);

// FK table
$sqlChildren = "SELECT numid FROM multipleselect WHERE multipleselecttrackerid = $URLiD";
$resultChildren = mysqli_query($con, $sqlChildren);
$selectedChildren = array_column(mysqli_fetch_all($resultChildren, MYSQLI_ASSOC), 'numid');
?>

<select name ="fm_multiple[]" multiple>
    <?php
    while($parent = mysqli_fetch_assoc($resultNum)){
        $selectedNumId = $parent['num_id'];
        $selectedNumName = $parent['num_name'];
        $selected = in_array($selectedNumId, $selectedChildren) ? "selected='selected'": '';
        echo "<option value='{$selectedNumId}' {$selected}>{$selectedNumName}</option>";
    }
?>
</select>

... и вывод.

<select name="fm_multiple[]" multiple="">
    <option value="1" selected="selected">One</option>
    <option value="2">Two</option>
    <option value="3" selected="selected">Three</option>
</select>

Пока все отлично работает.Теперь я хочу повторно выбрать выпадающие элементы и обновить базу данных.Я хочу ОБНОВИТЬ с существующей строки.Я не хочу сначала удалять все строки, а затем вставлять.
У меня была та же проблема в флажке, которую я смог достичь, используя скрытое значение.

Просто чтобы прояснить ситуацию.Допустим, я редактирую раскрывающийся список, выбираю только One и Two и удаляю three.

Так что в таблице, которую я ищу, multipleselect_id 15 удаляется идобавлено 16 для numid 2

+-------------------+-------------------------+-------+
| multipleselect_id | multipleselecttrackerid | numid |
+-------------------+-------------------------+-------+
|                14 | 5                       |     1 |
|                16 | 5                       |     2 |
+-------------------+-------------------------+-------+

не это.

+-------------------+-------------------------+-------+
| multipleselect_id | multipleselecttrackerid | numid |
+-------------------+-------------------------+-------+
|                16 | 5                       |     1 |
|                17 | 5                       |     2 |
+-------------------+-------------------------+-------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...