如何使用php和mysql将表单中的数组转换为数据库

v8wbuo2f  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(240)

我在弄清楚如何从输入字段获取数组时遇到了一些问题。因此,我的数组显示了我选择了哪些对象,我的问题是,当我将$selagegroup添加到sql insert中时,它只显示最后一个被选中的对象,而不是所有被选中的对象。我对sql和php还是有点陌生,所以这里有我的html和php代码非常感谢您的帮助

<label for="agegroup" id="agegroup"> What ages do you interact with?
<input type="checkbox" name="age[]" class="ages" id="kids" value="kids"> Ages 0-10
        <input type="checkbox" name="age[]" class="ages" id="teens" value="teens"> Ages 11-19
        <input type="checkbox" name="age[]" class="ages" id="twentys" value="twenties"> Ages 20-29
        <input type="checkbox" name="age[]" class="ages" id="thirtys" value="thirties"> Ages 30-39
        <input type="checkbox" name="age[]" class="ages" id="fourtys" value="fourties"> Ages 40-49
        <input type="checkbox" name="age[]" class="ages" id="fiftys" value="fifties"> Ages 50-59
        <input type="checkbox" name="age[]" class="ages" id="sixtyplus" value="sixtyplus"> Ages 60+
</label>

下面是我用来显示数组的php:

if (isset($_POST['age']) && $_POST['age'] !== '') {

    $vagegroup = $_POST['age'];

    foreach($_POST['age'] as $selagegroup){
        echo $selagegroup.'<br>';
    }
} else {
    $vagegroup = '';
}

我也尝试过将foreach循环添加到sql insert中,但是它只显示“,”,“”,对于复选框中的每个字段,我不知道该怎么做。任何帮助都将非常感激,即使我只是回显数组,它也可以工作并显示选中的所有内容。如果有人能解释和帮助,谢谢:)
编辑::我忘了添加这个我的insert语句整体上有30个不同的字段,因为这是一个很长的形式,但这是我如何为年龄组,它只显示最后选定的值

$sql_insert = "INSERT INTO influencers (inf_ages) VALUES ('$selagegroup')";
puruo6ea

puruo6ea1#

如果需要一个响应数组,则可以在将数据保存到数据库之前对其进行序列化或json编码,前提是db列的长度至少为varchar
我还建议检查它是否是一个数组,并确认您正在检索所需的输入(始终验证!),然后只需通过上述方法之一,而不是循环创建字符串-这比序列化或编码占用更多的资源。

相关问题