В таблице deportes есть 2 столбца с 4 строками:
<?php $sql = 'SELECT * FROM deportes'; $resul = mysqli_query($conexion, $sql); $deportes = array(); while ($fila = mysqli_fetch_array($resul)) { $deportes[] = $fila; } ?>
Форма с несколькими вариантами выбора:
<select name="fan[]" multiple="multiple"> <?php foreach ($deportes as $aficion) { echo "<option value='".$aficion['idD']."'"; echo " >{$aficion['nombreDep']} </option>\n"; } ?> </select>
Получить значения из формы
<?php if (isset($_POST['fan'])) { $sport = $_POST['fan']; } ?>
Теперь это
<?php $sport = mysqli_real_escape_string($conexion, $sport); ?>
Таким образом, вставьте значения в другую таблицу
$idPersona = mysqli_insert_id($conexion); $sql = "INSERT INTO mec(id,idD) VALUES ('$idPersona','$sport') ";
И в результате я получаю значение «0» в поле idD из таблицы mec
Если вы print_r
свой $_POST['fan']
, вы увидите, что это массив . Чтобы получить каждое значение массива, вы должны перебирать его, используя for
или foreach
:
$idPersona = mysqli_insert_id($conexion); foreach ($_POST['fan'] as $sport) { echo $sport; // you will see that now it is string $sql = "INSERT INTO mec(id,idD) VALUES ('$idPersona','$sport') "; // execute your query }
И, конечно же, вы должны перейти к подготовленным заявлениям, чтобы защитить свой код от sql-injection. Этот вопрос даст вам начало.