Intereting Posts

Создать php fom выбрать несколько значений, взятых из таблицы bd

В таблице 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. Этот вопрос даст вам начало.