Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php将表单中的复选框数组中的值获取到数据库_Php_Sql - Fatal编程技术网

如何使用php将表单中的复选框数组中的值获取到数据库

如何使用php将表单中的复选框数组中的值获取到数据库,php,sql,Php,Sql,我试图从使用php和sql插入数据库的表单中选中的复选框中获取值。我已经包括了html和一些php,我正试图开始工作。php的第一部分非常好用。php的第二点是从插入数据库的表单中获取复选框值的多次尝试之一。谢谢你的帮助 <?php $sql = "INSERT into students set student_number = '{$_POST['student_number']}', first_name = '{$_POST['first_name']}', last_name

我试图从使用php和sql插入数据库的表单中选中的复选框中获取值。我已经包括了html和一些php,我正试图开始工作。php的第一部分非常好用。php的第二点是从插入数据库的表单中获取复选框值的多次尝试之一。谢谢你的帮助

<?php

$sql = "INSERT into students set student_number = '{$_POST['student_number']}', 
first_name = '{$_POST['first_name']}', last_name = '{$_POST['last_name']}', degree = 
'{$_POST['degree']}'";
mysql_query($sql);

?>

<?php

$classes->bind_result($class);
$classes->execute();
$class = array();
while ($classes->fetch()) {
$class[] = $class;
}

?>
<div class="div1">COP1000:</div><input class="checkbox1" type="checkbox"     
value="COP1000" name="class[]" id="class[]" /><br />

<div class="div1">COP2800:</div><input class="checkbox1" type="checkbox" 
value="COP2800" name="class[]" id="class[]" /><br />

<div class="div1">CIS2910C:</div><input class="checkbox1" type="checkbox"    
value="CIS2910C" name="class[]" id="class[]" /><br />

<div class="div1"> COP2830:</div><input class="checkbox1" type="checkbox"  
value="COP2830" name="class[]" id="class[]" /><br /><br />

$\u POST['class']
是一个数组

通过(自然地)将这些值转换为字符串,可以将其插入数据库的一个字段中。最简单的方法是:

$str = implode(',', $_POST['class']);
在值之间加上逗号(,)。当您想要读取所有值时,您可以像这样使用
explode()

$array = explode(',', $str);
如果希望循环遍历每个值并对每个值执行更新/操作,则应循环遍历数组:

foreach($_POST['class'] as $class) {
    // run code per class

    // example
    $sql = sprintf("INSERT INTO `table` (`class`) VALUES('%s')", mysql_real_escape_string($class));
}


重要(不相关)注意:您应该在将输入插入数据库之前对其进行清理。如果没有,用户可以扩展SQL查询,基本上可以对数据库执行任何操作。有关详细信息,请在每次遇到问题时单击。

,以了解哪些变量包含可以使用的变量

所以使用

var_dump($_POST);
你会收到所有你邮寄的东西


现在也检查一下$_POST['class'],继续,直到你得到答案。

@bazmegakapa是正确的。。考虑使用<代码> SeaTrf来构建查询并使用<代码> MySQL LIVALIORE 字符串。您不希望SQL注入攻击:
$class[]=$class没有意义-您正在构建一个空数组。
不相关
非常重要relevant@Flukey这与问题无关。