php - 如何使用 PHP 和 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 插入中,但对于复选框中的每个字段,它只显示“”,“”,“”,我不知道该怎么做任何帮助将不胜感激,即使当我只是回显它工作的数组并显示检查的所有内容。如果有人可以解释和帮助谢谢:)
已编辑 :::我忘了添加这个我的插入语句总体上有 30 个不同的字段,因为这是一个长表单,但这是我为年龄组所做的,它只显示最后选择的值
$sql_insert = "INSERT INTO influencers (inf_ages) VALUES ('$selagegroup')";
解决方案
如果您期望响应数组,则可以在将数据保存到数据库之前对数据进行序列化或 json_encode,前提是 db 列的长度至少为 VARCHAR
我还建议检查它是否是一个数组并确认您正在检索您想要的输入(始终验证!),然后简单地通过上述方法之一而不是循环创建一个字符串 - 这比序列化或编码。
推荐阅读
- swift - SwiftUI 列表视图 - 底部间距
- python - '1234告诉我你更爱我',第4位不连续显示
- mongodb - mongoDb 聚合值作为键和值
- javascript - 图片上传器在 Safari 中不工作 - 可能的解决方法 (JavaScript)
- javascript - 通过javascript同时更改css的最佳方法?
- javascript - Javascript数组中的嵌套对象
- python - 如何设置命令提示符以使用下载的 Python 作为解释器?
- html - 我在哪里可以检查 vuejs3 是否支持这些依赖项
- mysql - 在 gorm 中使用 Preload 和 Join
- c# - 以精确的单位统一移动物体?