-4

如何将复选框值发布到 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>
4

1 回答 1

0

要通过 PHP 连接到 SQL 数据库,您可以使用 MySQLi 扩展。首先,确保您在 PHP.ini 文件中启用扩展并重新启动您的 Web 服务器以使更改生效。

您应该在 PHP.ini 中找到这一行:

;extension=php_mysqli.dll

并将其更改为:

extension=php_mysqli.dll

请参阅有关如何使用MySQLi 扩展的文档。但是连接到服务器并插入数据的快速模拟示例如下:

<?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();
?>

确保为服务器名、用户名、密码、数据库和 sqlCommand 变量赋值。

我不确定我是否已经回答了您的问题,但只是为了确定;您的 SQL 语句将类似于: INSERT INTO table_name VALUES (val1, val2, val3...) 并注意您可以通过将列放在括号中的 VALUES 关键字之前显式指定列,如下所示: INSERT INTO table_name (col1, col2 , col3...) 值 (val1, val2, val3...)

最后; 确保一切顺利。您的 HTML 表单应该位于一个页面上,并且该页面的操作设置为另一个(或者可能是相同的)页面。当 Submit 事件被触发时,页面将重定向(或刷新)。因此,请确保您的操作指向包含所有 PHP 的页面以使其正常工作。

如果您想知道 POST 数据寻找什么复选框。尝试以下操作: print_r($_POST["subjects"]); 这应该让您了解数组的结构。

如果您还有其他问题,请告诉我,我很乐意为您解答。

编辑 - 在评论后帮助回答

注意:在以下情况下,我假设这些复选框的列是布尔类型。

在数据库中插入或更改复选框的值为列名的字段;尝试构造以下 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;
?>
于 2012-08-02T13:21:00.677 回答