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