将Checkbox数组插入到PHP

时间:2017-05-09 01:17:15

标签: php mysql arrays checkbox

我很难过,我认为这肯定会奏效。我想在一个表的不同列中插入多个复选框值(如果选中)。我尝试使用for循环并保持命名约定一致,因此我可以使用带有复选框数组的for循环。这是PHP代码:     

$connection = new mysqli("localhost","root","","employee_db");
if(isset($_POST['check'])){
    $check = $_POST['check'];
    if($check){
        print_r($check);
    }else{
        echo "nothing checked";
    }

    for($i=0;$i<sizeof($check);$i++){
        $query = "INSERT INTO  `checklist_test` (`$check[$i]`) VALUE (`\"$check[$i]\"`)"; 
        $result = mysqli_query($connection,$query);
        if(!$result){
            die("NOPE <br>" . mysqli_error($connection));
        }else{
            echo "yup";
        }
    }
}

这是HTML

<form action="" method="post>
  <input type="checkbox" name="check[]" value="check1">Check1
  <input type="checkbox" name="check[]" value="check2">Check2
  <input type="checkbox" name="check[]" value="check3">Check3
  <input type="submit" value="submit">
</form>

MySQL列是&#34; id,check1,check2,check3&#34;所以SQL应该是这样的:

INSERT INTO `checklist_test` (`id`, `check1`, `check2`, `check3`) 
VALUES (NULL, 'test', 'test', 'test');

P.O.V.以外的Appreciater我需要谢谢!

1 个答案:

答案 0 :(得分:1)

如果在循环内执行查询,则执行x个查询(或插入x个行)而不是插入x个列。这里确实没有必要使用循环,因为你有一定数量的列。

使用echo语句打印查询以查看您正在运行的内容,并且您将了解为什么这不起作用。

您也不应该直接将用户输入放入MySQL查询中。阅读SQL注入。