繁体   English   中英

如何使用 PHP 和 Mysql 将数组从表单转换为数据库

[英]how do I convert an array from a form into a database using PHP and Mysql

我在弄清楚如何获取我从输入字段中获得的数组时遇到了一些问题。 所以什么有效,我让我的数组显示我选择了哪些我的问题是,当我将 $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 插入,但它只显示复选框中的每个字段的“”,”,“”,我不知道该怎么做任何帮助将不胜感激,即使我只是回显它工作的数组并显示所有被检查的内容。 如果有人可以解释和帮助谢谢你:)

EDITED:::我忘了添加这个我的插入语句总体上有 30 个不同的字段,因为这是一个很长的表格,但这是我为年龄组所做的,它只显示最后选择的值

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

如果您需要一系列响应,则可以在将数据保存到数据库之前对数据进行序列化或 json_encode,前提是 db 列至少是适当长度的 VARCHAR

我还建议检查它是否是一个数组并确认您正在检索所需的输入(始终验证)。 然后简单地通过上述方法之一而不是循环创建一个字符串——这比序列化或编码占用更多的资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM