我正试图使用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 />
$_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查询,基本上可以对数据库执行任何操作。有关更多信息,请单击bazmagakapa的链接。
每次您遇到任何问题以了解包含哪些变量时,都可以使用var_dump()
所以使用
var_dump($_POST);
您将通过POST获得所有发送的信息。
现在也检查$_POST['class'],然后继续,直到你得到答案。