如何从表单中插入多个值,包括多个复选框

时间:2016-10-26 20:55:12

标签: php mysql checkbox

有!

我有这个HTML:

<form method="POST" action="incluindo1.php">
        <fieldset>
            <legend>Incluir Produto</legend>
            <label for="nome">Nome:</label><br>
            <input type="text" name="nome" class="" placeholder="Digite o nome"><br>
            <label for="email">Email:</label><br>
            <input type="email" name="email" class="" placeholder="Digite o email"><br>
            <label for="categoria">Categoria:</label><br>
            <select name="categoria">
                <option value="selecione">Selecione</option>
                <option value="a">A</option>
                <option value="b">B</option>
                <option value="c">C</option>
                <option value="d">D</option>
            </select><br>
            <label for="preferencias">Preferências musicais:<br>
                <input type="checkbox" name="preferencias[]" value="Clássica">Clássica
                <input type="checkbox" name="preferencias[]" value="Rock">Rock
                <input type="checkbox" name="preferencias[]" value="Pop">Pop
                <input type="checkbox" name="preferencias[]" value="MPB">MPB
                <input type="checkbox" name="preferencias[]" value="Flashouse">Flashouse
            </label><br>
            <textarea name="observacao" class="" placeholder="Digite sua observação"></textarea><br>
            <input type="submit" value="Incluir" name="incluir" id="incluir">
        </fieldset>
    </form>

我有这个PHP:

include "conecta_mysqli.inc.php";

$nome=$_POST["nome"];
$email=$_POST["email"];
$categoria=$_POST["categoria"];
$preferencias=$_POST["preferencias"];
$observacao=$_POST["observacao"];

$inclusao = mysqli_query($conexao, "INSERT INTO pessoas_a VALUES(null,'$nome','$email','$categoria','$preferencias','$observacao')");

这个SQL:

create table pessoas_a(
id int(11) AUTO_INCREMENT,
nome varchar(50) not null,
email varchar(30) not null,
categoria char(1) not null,
preferencias text not null,
observacao text not null,
primary key(id)
);

如何在MySQL中插入这些值的最佳方法

2 个答案:

答案 0 :(得分:0)

如果您想要/非常简单的表格

你可以迭代$preferencias as $preferencia(因为它是一个数组) 并在查询中插入每个条目(使用$preferencia,保留其余条目),但是为数据库中的每一个条目写入一行,但您也可以implode(',',$_POST["preferencias"])只写一个条目(如果这可以实现这种方式)。取决于你想做什么/尝试

答案 1 :(得分:0)

如果数据要保留在同一行,则应序列化数据。缺点是,您无法索引和查询这些值。如果没有,您应该构建一个单独的表并交叉引用数据。以下是序列化方法。

include "conecta_mysqli.inc.php";
$nome=$_POST["nome"];
$email=$_POST["email"];
$categoria=$_POST["categoria"];
$preferencias= serialize($_POST["preferencias"]);
$observacao= serialize($_POST["observacao"]);

$inclusao = mysqli_query($conexao, "INSERT INTO pessoas_a VALUES(null,'$nome','$email','$categoria','$preferencias','$observacao')");