使用PHP更新SQL数据库中的复选框数据

时间:2013-06-19 15:51:35

标签: php sql checkbox

正如标题所示,我遇到了如何更新已在我的SQL数据库中拥有数据的复选框的问题。

我的代码如下:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Name <input type"text" name="inputName" value="<?php echo $hemsida['Namn']; ?>" /> </br>
Commentar <input type"text" name="inputComment" value="<?php echo $hemsida['Comment']; ?>" />
<br/>
</br><input type="checkbox" name="inputAll" value="checked" <?php echo $hemsida['All']; ?>/>Alla
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
<input type="submit" name="submit" value="Redigera">

<?php

if(isset($_POST['submit'])) {
    $u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$_POST[inputALL]' WHERE ID = $_POST[id]";
    mysql_query($u) or die(mysql_error());

    echo "User has been modified";
    header("Location: ..//sokh.php");
} 
?>

echo $ hemsida ['Namn'],['Comment']和['All']只显示并显示数据库中的旧数据,但我不明白如何更新复选框。我到处都看,但我被卡住了。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您的问题不明确,但我认为您的数据库中有一个名为“all”的列?也许这个列只能取1个值(真或假)!!

然后您可以在表单中测试此值,如果值为true:将选中复选框,否则:将不会选中复选框:

<input type="checkbox" name="inputAll" checked="<?php if($hemsida['All'] == true) echo checked; ?>" />Alla

不要使用value =“”,而是使用checked,然后测试$ hemsida ['All']的值,如果它是真正的回声检查其他任何事情

对于您的应用程序的PHP代码和服务器端,您可以只测试是否选中了复选框,然后您可以选择要在数据库中分配给您的列,例如,如果选中复选框,则创建变量(对于示例$ value_of_checkbox)并为此变量赋值(对于exampel为“true”),然后在更新数据库列的sql代码中包含此变量:

    if (isset($_POST['inputALL'])) {
       $value_of_checkbox = true;
    }
    else {
       $value_of_checkbox = false;
    }

    if(isset($_POST['submit'])) {
       $u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$value_of_checkbox' WHERE ID = $_POST[id]";

    mysql_query($u) or die(mysql_error());

    echo "User has been modified";
    header("Location: ..//sokh.php")

注意:我还更改了此部分中的sql代码:ALL='$value_of_checkbox'

答案 1 :(得分:0)

如果我正确理解您的问题,您正在寻找一种方法,可以根据数据库信息选中或不选中复选框。如果是这样,我会尝试这样的事情。在代码的顶部,您将获得数据库信息,请输入

if($conditionForCheck){
   $inputAll = ' checked="checked"';
}

然后以你的形式

<input type="checkbox" name="inputAll"<?php echo $inputAll; ?> />