选中所有复选框时,数据库中所有条目(即使在不同日期)的状态表都会更改值

问题描述 投票:0回答:1

我正在测试一个出勤网站,记录不同日期的出勤情况(手动更改我的设备上的日期),我的状态栏 1 表示出席,0 表示缺席。当我记录一些缺席的出勤时,该日期的状态列会正确反映,但是当我记录所有人都在场的出勤时,所有日期的状态列值(包括带有“0”的日期)都会更改为‘1’。以下是保存代码

if(isset($_POST['save'])){
    
    $studentNo=$_POST['studentNo'];
    $check=$_POST['check'];
    $N = count($studentNo);
    $status = "";

  $qurty=mysqli_query($conn,"select * from tblattendance where subject = '$id' and date = '$dateTaken' and status = '1'");
  $count = mysqli_num_rows($qurty);

  if($count > 0){

      $statusMsg = "<div class='alert alert-danger' style='margin-right:700px;'>Attendance has been taken for today!<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>";

  }else
    {
      for($i = 0; $i < $N; $i++)
        {
         $studentNo[$i]; 
            if(isset($check[$i]))
                {
                 $qquery=mysqli_query($conn,"update tblattendance set status='1' where studentNo= '$check[$i]'");

                      if ($qquery) {

                          $statusMsg = "<div class='alert alert-success'  style='margin-right:700px;'>Attendance Taken Successfully!<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>";
                      }
                      else
                      {
                          $statusMsg = "<div class='alert alert-danger' style='margin-right:700px;'>An error Occurred!</div>";
                      }
                  
                }
          }
      }
}
$query = "SELECT tblsection.section,tblassignteach.secId,tblclass.className,tblsubject.subject,tblstudents.secId,tblstudents.studentNum,tblstudents.firstName,tblstudents.lastName,tblstudents.mname,tblstudents.sex,tblstudents.classId FROM tblstudents 
                      INNER JOIN tblassignteach ON tblassignteach.secId = tblstudents.secId
                      INNER JOIN tblsection ON tblsection.Id = tblstudents.secId
                      INNER JOIN tblclass ON  tblclass.Id = tblstudents.classId
                      INNER JOIN tblclassarms ON tblclassarms.Id = tblassignteach.classArmId
                      WHERE tblassignteach.subject='$id'";
                      $rs = mysqli_query($conn, $query);
                      $num = $rs->num_rows;
                      $sn=0;
                      $status="";
                      if($num > 0)
                      { 
                        while ($rows = $rs->fetch_assoc())
                          {
                             $sn = $sn + 1;
                            echo"
                              <tr>
                                <td><input name='check[]' type='checkbox' value=".$rows['admissionNumber']." class='form-control'></td>
                                <td>".$sn."</td>
                                <td>".$rows['admissionNumber']."</td>
                                <td>".$rows['lastName']."</td>
                                <td>".$rows['firstName']."</td>
                                <td>".$rows['mname']."</td>
                                <td>".$rows['sex']."</td>
                                <td>".$rows['className']."</td>
                                <td>".$rows['section']."</td> 
                                <td>".$rows['subject']."</td> 
                              </tr>";
                              echo "<input name='studentNo[]' value=".$rows['studentNum']." type='hidden' class='form-control'>";
                          }
                      }
 $qurty=mysqli_query($conn,"SELECT * from tblattendance where subject= '$id' and dateTimeTaken = '$dateTaken'");
        $count=mysqli_num_rows($qurty);

        if($count == 0){ 

          $qus=mysqli_query($conn,"SELECT tblstudents.studentNum,tblassignteach.subject from tblstudents 
          inner join tblassignteach on tblassignteach.secId = tblstudents.secId
          where tblassignteach.subject= '$id'");
          while ($ros = $qus->fetch_assoc())
          {
              $qquery=mysqli_query($conn,"INSERT into tblattendance(studentNo,subject,sessionTermId,status,dateTimeTaken,timeTaken) 
              VALUES('$ros[studentNum]','$id','$sessionTermId','0', '$dateTaken', '$ttimeTaken')");

          }

我想知道为什么数据库中所有记录日期的所有值都更改为“1”,以及是否有办法解决此问题。如果您需要任何其他信息,请随时告诉我,我非常感谢我能得到的所有帮助。预先感谢您!

php mysql checkbox time-and-attendance
1个回答
0
投票

我注意到的第一件事是 php 变量旁边缺少点,我没有检查代码。

© www.soinside.com 2019 - 2024. All rights reserved.