如何将复选框值发布到mysql db的不同字段。请查看代码。在我的代码中我有18个选项可供选择。我有一个18个字段的表。我只想将这些值放在相应的列中这是代码。
<?php
if(!empty($_POST['subjects'])) {
foreach($_POST['subjects'] as $check) {
echo $check."<br>";
SQL query ???
}
}
?>
<form action="check.php" method="post">
<input type="checkbox" name="subjects[]" value="PakistanStudies" />
<input type="checkbox" name="subjects[]" value="Islamiat" />
<input type="checkbox" name="subjects[]" value="Urdu(SyllabusA)" />
<input type="checkbox" name="subjects[]" value="Urdu(SyllabusB)" />
<input type="checkbox" name="subjects[]" value="Mathematics" />
<input type="checkbox" name="subjects[]" value="AdMathematics" />
<input type="checkbox" name="subjects[]" value="Sociology" />
<input type="checkbox" name="subjects[]" value="ReligiousStudies" />
<input type="checkbox" name="subjects[]" value="EnglishLanguage" />
<input type="checkbox" name="subjects[]" value="EnglishLiterature" />
<input type="checkbox" name="subjects[]" value="Chemistry" />
<input type="checkbox" name="subjects[]" value="Physics" />
<input type="checkbox" name="subjects[]" value="PrinciplesofAccounting" />
<input type="checkbox" name="subjects[]" value="Economics" />
<input type="checkbox" name="subjects[]" value="BusinessStudies" />
<input type="checkbox" name="subjects[]" value="Biology" />
<input type="checkbox" name="subjects[]" value="Statistics" />
<input type="checkbox" name="subjects[]" value="World History" />
<input type="submit" />
</form>
答案 0 :(得分:0)
要通过PHP连接到SQL数据库,可以使用MySQLi扩展。首先,确保在PHP.ini文件中启用扩展并重新启动Web服务器,以使更改生效。
你应该在PHP.ini中找到这一行:
;extension=php_mysqli.dll
只需将其更改为:
extension=php_mysqli.dll
请参阅有关如何使用MySQLi extension的文档。但是,连接到服务器和插入数据的快速模拟示例如下:
<?php
$mysqli = new mysqli($servername, $username, $password, $database);
// Ensure connection
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if ($mysqli->query($sqlCommabnd) === TRUE) {
// Query was successful!
}
// Disconnect
$mysqli->close();
?>
确保为servername,username,password,database和sqlCommand变量赋值。
我不确定我是否已经回答了你的问题但只是为了确定;您的SQL语句将类似于: INSERT INTO table_name VALUES(val1,val2,val3 ......) 并注意您可以通过将它们放在括号中的VALUES关键字之前显式指定列,如下所示: INSERT INTO table_name(col1,col2,col3 ...)VALUES(val1,val2,val3 ...)
最后;确保一切顺利。您的HTML表单应位于页面上,并将操作设置为另一个(或可能是相同的)页面。触发Submit事件后,页面将重定向(或刷新)。因此,请确保您的操作指向包含所有PHP的页面。
如果您想知道POST数据查找复选框的内容。请尝试以下方法: 的print_r($ _ POST [ “科目”]); 这应该可以让您了解数组的结构。
如果您有任何其他问题,请告诉我,我很乐意回答。
编辑 - 在评论后帮助回答
注意:我假设在以下情况下这些复选框的列是布尔类型。
在数据库中插入或更改字段,其中复选框的值为列名;尝试构造以下SQL语句(在需要的地方更改它):
<?php
$columns = "";
$values = "";
foreach($_POST["subjects"] as $checkedValue)
{
$columns .= $checkedValue . ", ";
$values .= "true, ";
}
$sqlCommand = "INSERT INTO table (".substr($columns,0,-2).") VALUES (".substr($values,0,-2).");";
echo $sqlCommand;
?>