php - 从表中的数据库中选择复选框并使用 PHP 将其更新回来

标签 php mysql

我从数据库中选取数据并排列在表中,它还包含一个复选框,如果为 1,则为 true,如果为 0,则为 false。程序应根据复选框的功能更新数据库。

        <?php
            $query1="SELECT * FROM notices;";
            $result1=mysql_query($query1,$conn);
            $num_rows=mysql_num_rows($result1);
            $pick=array();
            if($num_rows>0)
            {
                while ( ($row=mysql_fetch_array($result1)) != null)
                { 
                $pick=$row['sl'];
                ?>
                <tr class="trc">
                    <td align="left"><label class="lab1"><?php echo($row['notice']); ?></label></td>
                    <td align="center"><label class="lab1"><?php echo($row['date']); ?></label></td>
                    <td align="center"><input type="checkbox" name="notice_id[]" value="YES" <?php 
                                            if($row['active']==1)
                                            {
                                                echo("checked");
                                            }
                                            ?> /></td>
                </tr>
            <?php 
                }
            }
        ?>

下面是将数据更新回数据库的代码。

if(isset($_POST['up_note'])==true)
{
    $n_ids = $_POST['notice_id'];
    $sl_no = 1;

    foreach($n_ids as $key => $id)
    {
        echo($n_ids." | ".$id." | ".$key."<br />");

        $cb = ($POST['notice_id[$id]'] == 'YES')?'1':'0';

        if($cb==1)
        {
            $query3 = "UPDATE notices SET active = 1 WHERE sl='$sl_no';";
            $result3 = mysql_query($query3, $conn);
            echo("entered");
        }
        else
        {
            $query3 = "UPDATE notices SET active = 0 WHERE sl='$sl_no';";
            $result3 = mysql_query($query3, $conn);
            echo("not entered");
        }
        $sl_no = $sl_no + 1;    
    }
}

最佳答案

<?php
            $query1="SELECT * FROM notices;";
            $result1=mysql_query($query1,$conn);
            $num_rows=mysql_num_rows($result1);
            $pick=array();
            if($num_rows>0)
            {
                while ( ($row=mysql_fetch_array($result1)) != null)
                { 
                $pick=$row['sl'];
?>
                <tr class="trc">
                    <td align="left"><label class="lab1"><?php echo($row['notice']); ?></label></td>
                    <td align="center"><label class="lab1"><?php echo($row['date']); ?></label></td>
                    <td align="center"><input type="checkbox" name="notice_id[]" value="<?php echo $pick; ?>" <?php if($row['active']==1){ echo("checked"); } ?> /></td>
                </tr>
<?php 
                }
            }
?>


/////////////////////////////////////
if(isset($_POST['up_note'])==true)
{
    if(!empty($_POST['notice_id'])){
        $n_ids = $_POST['notice_id'];
            $query_all = "UPDATE notices SET active = 0";
            $result_all = mysql_query($query_all, $conn);
        foreach($n_ids as $key => $id){
            $sl_no = $n_ids[$key];
            $query3 = "UPDATE notices SET active = 1 WHERE sl=$sl_no;";
            $result3 = mysql_query($query3, $conn);
            echo("entered");    
        }
    } else {
           $query_all = "UPDATE notices SET active = 0";
           $result_all = mysql_query($query_all, $conn);
    }
}

关于php - 从表中的数据库中选择复选框并使用 PHP 将其更新回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090662/

相关文章:

java - 数据库 : map to another data model

php - 帮我解释一下这个 PHP 片段 : returning array and immediately reference an index

php - 使用 Mysql/PHP 从单行获取单个值

php - 使用 Laravel 5 热切加载多个索引关系

mysql - 加载数据到 MySQL : How to deal with backslashes?

mysql - Hibernate 搜索通过字段值获取一行

php - 如何在 PhpMyAdmin 上启用服务器选择?

php - 将带有反向引用的正则表达式从 PHP 移植到 Objective-C

php - 如何为 LAMP 删除 WIMP

mysql - 如何将输入的参数值与存储过程mysql中的变量进行比较?