gpt4 book ai didi

PHP MYSQL 编辑表单,试图将行内爆/分解为复选框?

转载 作者:行者123 更新时间:2023-11-29 04:28:14 25 4
gpt4 key购买 nike

我有一个包含多个类别的表单。它们由复选框分隔,因此可以选中他们的帖子/故事所属的任意数量的类别。

值存储在数据库行中,插入时用逗号分隔

GetSQLValueString(implode($_POST['r_category'],", "), "text"),

所以在数据库中我可以有一个看起来像这样的条目:

2,3,6,12

哪些是类别编号。

我现在正在构建一个编辑表单功能,用于编辑和更新这些记录。我找不到将值“展开”到编辑表单复选框中的方法??

因此,如果您登录并转到要编辑的条目,例如,我有分隔类别的复选框,因此很容易选中和取消选中以添加和不添加...我已经尝试了所有方法可以将值获取到 POST 并在查看此编辑表单时进行检查。

这是我的编辑表单页面上的类别复选框之一的示例,但当我有多个类别时它不起作用,如上例.. 2,3,6,12 ?? :

  <input type="checkbox" name="r_category[]" 
<?php if (!(strcmp("2", $row_Recordset2['r_category']))) {
echo "checked=\"checked\"";} ?> value="2" />Cat 2

在此先感谢 NINJAS!!

最佳答案

I can not find a way to "EXPLODE" the values into checkboxes on the edit form

这条线非常接近答案,我真的很怀疑这是不是一个笑话帖子。

鉴于您的数据库结构,您可以使用 explode()函数根据分隔符将值分解为数组。例如:

$values = "1,2,3,4";
$array_of_values = explode(",", $values);

在此之后,$array_of_values 将包含一个包含四个元素的数组,其值为 1234 分别。

在决定是否将复选框显示为已选中时,可以使用 in_array()调用函数:

if (in_array("2", $array_of_values)) {
echo 'checked="checked"';
}

除此之外,让我借此机会支持@MarkB 在对这个问题的评论中所说的话:在单个数据库字段中保存多个值是的想法。它让搜索变得更加困难,让增加值(value)变得更加困难……它只会让一切变得比它需要的更复杂。

处理此问题的最佳方法是使用一个多对多表来存储项目和类别的行,一个项目所属的每个类别都有一行。

换句话说,您当前拥有的位置:

Item | Category
---------------
123 | 1,2,3,4

您会得到一个如下所示的表格:

Item | Category
---------------
123 | 1
123 | 2
123 | 3
123 | 4

关于PHP MYSQL 编辑表单,试图将行内爆/分解为复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com