Поле со списком не отправляется в БД

<?php
session_start();
$connection = mysqli_connect("localhost", "root", "", "regauth") or die("Error!!!");

if(empty($_SESSION['user']))
    header("location: ../../");

if($_GET['link'] === 'logout'){
    unset($_SESSION['user']);
    session_destroy();
    header("location: ../../");
}
  $len=htmlspecialchars(trim($_POST['nameselect']));
    if(isset($_POST['do-len'])){
mysqli_query($connection, "INSERT INTO users (len) VALUES ('$len') ");  
 }
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Личный кабинет</title>
</head>

<body>
<div><?php echo "Привет, ".$_SESSION['user'][1]; ?> | <a href="index.php?link=logout">Выйти</a>
</div>
<h3>Создание заявки</h3>
<form  method="post">
<p><select size="3" name="nameselect" multiple>
    <option value="Тест1">Тест1</option>
    <option value="Тест1">Тест2</option>
    <option value="Тест3">Тест3</option>
   </select></p>
   <p><input type="submit" name="do-len"value="Отправить"></p>
   </form>
   <h3>Просмотр своих записей на курсы</h3>
<!--   <?php
  $sql=mysql_query("select * from `users` where 'len' "); 
/*
символ '*' указывает, что нужно выбрать все столбцы
если Вам нужен один или несколько столбцов, укажите какие
это сократит нагрузку на MySQL и время вывода информации
например, нам нужны только заголовок и текст
*/

$result=mysql_fetch_array($sql);

# выводим результат
print "$result[len]";

   ?>

    -->
</body>
</html>

Ответы (1 шт):

Автор решения: Максим Степанов

Вместо <select name="nameselect" multiple>

укажите, что вы ожидаете массив: <select name="nameselect[]" multiple>

Затем получайте его и подставляйте в запрос:

// получим массив с выбранными именами
$names = $_POST['nameselect'];

// получаем строку вида: INSERT INTO users (len) VALUES ('Тест1'), ('Тест3'):
$query = "INSERT INTO users (len) VALUES ('".implode("'), ('", $names)."')";

// выполняем запрос
mysqli_query($connection, $query);

Внимание, это упрощенный пример. Использование в реальном приложении может привести к проблемам с безопасностью.

→ Ссылка