Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Fazer um insert com um select mulitple

Olá! Estou tentando inserir mais de um valor em uma coluna. Mas só está indo uma.

<select class="js-example-basic-multiple" multiple="multiple" name="categoria" style="width:1000px;">
                    <option value="1">1</option>
                    <option value="2">2</option>

</select>
$connect = mysqli_connect("localhost", "root", "", "lista");
 $nome = $_POST["nome"];
 $categoria = $_POST["categoria"];
 $sql = "INSERT INTO membros(nome, categoria) VALUES('".$nome."','".$categoria."')";
 if(mysqli_query($connect, $sql))
 {
      header('Location: home.php');
 } else {

echo mysqli_error($connect);
 }
2 respostas

Quando você cria um select do tipo multiple. Ele se torna um array. Nesse caso, é necessário um loop pra fazer o insert

$connect = mysqli_connect("localhost", "root", "", "lista");
 $nome = $_POST["nome"];
 $categorias = $_POST["categoria"];

foreach( $categorias AS $categoria )
{
    $sql = "INSERT INTO membros(nome, categoria) VALUES('".$nome."','".$categoria."')";

    if(!mysqli_query($connect, $sql))
        echo mysqli_error($connect) . '<br />';
}

header('Location: home.php');
solução!

Olá! Consegui. Eu tinha que fazer um implode antes com vírgula.

$connect = mysqli_connect("localhost", "root", "", "lista");
 $nome = $_POST["nome"];
 $categoria_string = implode(', ', $_POST['categoria']);
 $sql = "INSERT INTO membros(nome, categoria) VALUES('".$nome."','".$categoria_string."')";
 if(mysqli_query($connect, $sql))
 {
      header('Location: home.php');
 } else {

echo mysqli_error($connect);
 }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software