插入表单复选框PHP用逗号分隔 - 检索它们

时间:2012-03-09 04:27:47

标签: php arrays forms checkbox csv

我正在寻找stackoverflow,但我找不到我需要的东西。我需要将用php发送的复选框数据插入mysql,如22111,22332,12123,121132。

我有这个代码(在网站上找到)

<?php 
foreach($_POST['idecod'] as $check) {
            $sel = $check.',';}

$contenedor = "UPDATE inmdes SET idecod='$sel'";

$insertdb = mysql_query($contenedor) or die(mysql_error());

?>

当然,我将复选框作为数组:

<input name="idecod[]" type="checkbox" value="<?php echo $rs[0]; ?>"  />

如何插入多个复选框,如2211223,2211223,1212233,12332122或者如果只是一个222111222 .. ???

我怎样才能将它们作为一个数组进行检索,因为我需要使用类似这样的东西

<? php if (in_array('2211223', $idecod)) echo "checked"; ?>

自动检查上一个复选框。!

提前致谢

罗伯特

更新

我有一个选项列表。这些选项使用复选框执行/ des。我需要:

1.-能够注册选项(由于@prodigitalso已解决) 2.-能够自动检查先前检查过的复选框。

所以,我在表(mysql)中有这样的代码221122,221133,225566,445522。我需要脚本来检查先前检查过的代码(表中的代码)并检查它们。例如:

我看到了5个选项221122,221133,225566,445522和663322.我只检查了4个(221122,221133,225566,445522)并在mysql数据库中进行了更新。

我再次来到选项页面。但以前我检查过221122,221133,225566,445522。所以脚本检查EACH复选框。所以自动检查选项221122,221133,225566,445522但它没有检查663322。

RS [0]是代码,例如221122。

2 个答案:

答案 0 :(得分:1)

您可以使用implodeexplode功能执行此操作

$string = implode(",", $array);

$array = explode(",", $string);

答案 1 :(得分:0)

您应该使用explodeimplode

if(isset($_POST['idecod']) && !empty($_POST['idecod'])) {
   $sel = implode(',', $_POST['idecod']);
   $contenedor = sprintf("UPDATE inmdes SET idecod='%s'", mysql_real_escape_string($sel));
   $insertdb = mysql_query($contenedor) or die(mysql_error());
}

然后当你把它们拉出来时,只需使用:

$idecodArr = explode(',', $row['idecod']);