Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从表中的数据库中选取复选框并使用PHP将其更新回来_Php_Mysql - Fatal编程技术网

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

从表中的数据库中选取复选框并使用PHP将其更新回来,php,mysql,Php,Mysql,我从数据库中选取了数据,并将其排列在表中。表中还包含一个复选框,如果为1,则为true,如果为0,则为false。程序应根据复选框功能更新数据库 <?php $query1="SELECT * FROM notices;"; $result1=mysql_query($query1,$conn); $num_rows=mysql_num_rows($result1); $pick

我从数据库中选取了数据,并将其排列在表中。表中还包含一个复选框,如果为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 
                }
            }
        ?>

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

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;    
    }
}
if(isset($\u POST['up\u note'])==true)
{
$n_id=$_POST['notice_id'];
$sl_no=1;
foreach($key=>$id的n_id)
{
echo($n_id.“|”。$id.“|”。$key.“
”); $cb=($POST['notice_id[$id]']='YES')?'1':'0'; 如果($cb==1) { $query3=“更新通知集活动=1,其中sl='$sl_no';”; $result3=mysql\u查询($query3,$conn); 回音(“输入”); } 其他的 { $query3=“更新通知集活动=0,其中sl='$sl_no';”; $result3=mysql\u查询($query3,$conn); 回声(“未输入”); } $sl_no=$sl_no+1; } }
你确定这一行吗

$cb = ($POST['notice_id[$id]'] == 'YES')?'1':'0';
我想是有意的

$cb = ($_POST['notice_id[$id]'] == 'YES')?'1':'0';
并将单引号替换为双引号

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


那么,你的问题是什么?代码不起作用。它没有将更新后的数据保存回数据库。您是否得到任何输入或未输入的数据,并尝试回显mysql错误。在上面我获取数据的部分是OK的。它正在获取所有三条记录。但在我试图将更新的数据保存到数据库的下面,它只是显示“未输入”。这是一个错误(可能是其中之一),但仍然不起作用。它仍然是not enter子句。如果您在单引号内给出php变量,该变量将被视为字符串,这可能就是我在上面更改代码的原因。感谢您的时间,但它没有解决问题。$query3=“UPDATE notices SET active=1,其中sl=“$id”;”;我正在使用上述查询。你的循环运行良好。现在的问题是,我不知道在sl=?????????检查编辑的代码复选框的值是您在提交时收到的sl_编号,并更新相应的recordOH BOY!它正在工作,正在保存未选中的复选框,请同时解决else条件,如果未选中,则应替换active=0。谢谢您的时间!我对您(当然是您的)的上述代码做了一些更改$query\u all=“UPDATE notices SET active=0”$result\u all=mysql\u query($query\u all,$conn);我已经把上面的两个命令放在了isset上面($\u POST['up\u note'])下面,这是一个问题。再次感谢你!!!
<?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);
    }
}