У меня есть список дней в моей базе данных, созданных с SET
данных SET
.
SET('Mon','Tue','Wed','Thr','Fri','Sat','Sun')
Я хочу, чтобы пользователь мог выбрать несколько дней для ввода в базу данных с помощью раскрывающегося списка с несколькими вариантами:
<select name='days' id='days' size=4 multiple> <option name=Mon value=Mon> Mon </option> <option name=Tue value=Tue> Tue </option> <option name=Wed value=Wed> Wed </option> <option name=Thr value=Thr> Thr </option> <option name=Fri value=Fri> Fri </option> <option name=Sat value=Sat> Sat </option> <option name=Sun value=Sun> Sun </option> </select>
Как я могу захватить данные из этого раскрывающегося списка, чтобы вставить в мой запрос mysql?
Прямо сейчас мой запрос выглядит так:
$sql2 = " UPDATE tblFacilityHrsDateTimes SET `startEventDate`='{$_POST['startEventDate']}',`endEventDate`='{$_POST['endEventDate']}', `startTime`='{$_POST['startTime']}',`endTime`='{$_POST['endTime']}',`recurrence`='{$_POST['recurrence']},`finalDate`='{$_POST['finalDate']}' WHERE `id` = '$id' "; $mysqli->query($sql2) or die($mysqli->error);
В настоящее время с полем выбора как есть, он захватывает только один из дней, выбранных пользователем.
Во-первых, ваш выбор должен иметь имя с квадратными скобками:
<select name='days[]' id='days' size=4 multiple="multiple">
Таким образом, когда пользователь выбирает больше значений (параметров) и передает форму, вы получите массив значений, которые он выбрал.
Затем вам нужно пройти через этот массив и вставить каждую запись:
foreach($_POST['days'] as $k => $v) { // here do the INSERT query with value $v }
Но ваш запрос в поле выбора говорит нам, что это еще не конец истории …
foreach ($_POST['days'] AS $key => $value) { // INSERT ... where $value is one of the values }