2012-03-09 27 views
1

我正在查看stackoverflow,但我找不到我需要的东西。我需要插入复选框数据与PHP发送到MySQL像这样22111,22332,12123,121132。插入表单复选框以逗号分隔的PHP - 检索它们

我有这样的代码(在这里发现,在现场)

<?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 .. ???

,我怎么能retrive他们作为一个数组,因为我需要使用像这样

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

自动检查前面的框。!

在此先感谢

罗伯托

UPDATE

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

1.-能够注册选项检查(解决方案感谢@prodigitalso) 2.-能够自动检查先前选中的复选框。

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

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

我再次进入选项页面。但之前我检查了221122,221133,225566,445522。所以脚本检查每个复选框。因此,自动检查选项221122,221133,225566,445522但它不检查663322.

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

+0

你是**敞开** SQL注入。学习如何使用PDO准备好的查询来正确地做到这一点,否则,如果你还没有,你将被黑客攻击。 – Brad 2012-03-09 04:28:40

+0

谢谢@Brad。我使用mysql_real_escape_string来避免SQL注入。我没有在这段代码中,但我使用它。 xD – 2012-03-09 05:39:04

回答

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']); 
+0

谢谢。它工作得很好。现在来拉动数据的一部分。我试着用这个代码'$ arr =“SELECT idecod FROM inmdes”; $ leerdbarr = mysql_query($ arr)或die(mysql_error());这个在复选框'<?php if(in_array($ rs [0],$ arrdt))echo“checked”; rs是代码,例如2211220从另一个表中拉出来。所以,我有4个复选框,但只有3个被选中,而这3个数据库就像221122,223322,114455。我怎么能拉他们,并使用in_array(或其他) – 2012-03-09 05:11:47

+0

续...所以我可以自动检查先前检查过的复选框。谢谢。! – 2012-03-09 05:12:33

+0

你的代码对我没有意义。什么是'$ rs [0]'?你可以更新你的原始问题来显示'$ rs'的查询。和拖车桌的结构。 – prodigitalson 2012-03-09 05:25:03

1

您可以使用implodeexplode功能做到这一点

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

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

感谢您的回答。 – 2012-03-09 05:12:44