为什么我的数据库插入查询无法在考勤管理系统php / mysql中插入记录

时间:2019-04-26 03:59:06

标签: php html

我正在学习有关使用PHP / Mysql的考勤管理系统的教程。由于某些原因,我注意到INSERT语句未执行,因为如果这样做,则$ flag变量将设置为1。

我做了一些尝试,使我意识到它可能来自INSERT语句。我注释掉了if语句,以便将$ flag设置为1。执行此操作时,我收到一条消息,希望显示“成功插入了考勤数据”,但是记录并没有出现在数据库中。

HTML

<div class = "panel panel-default">

  <div class = "panel panel-heading">
  <h2>
  <a class = "btn btn-success" href = "add.php">Add Student</a>
  <a class = "btn btn-info float-right" href = "view_all.php">View All</a>
  </h2>
  <?php if($flag) {?>
  <div class="alert alert-success"> 
  Attendance Data Inserted Successfully
  </div>
  <?php  } ?>
  <?php if($update) {?>
  <div class="alert alert-success"> 
  Student Attendance Updated Successfully 
  </div>
  <?php  } ?>
   <h3><div class="well text-center"> Date:<?php echo date('Y-m-d');?></div></h3>
  <div class= "panel panel-body">

  <form action="index.php" method="post">

     <table class="table table-striped">
     <tr>
     <th>#Serial Number </th><th>Student Name</th><th>Row Number</th><th>Attendance Status </th>
     </tr>

     <?php  $result = mysqli_query($conn, "SELECT * FROM attendance");
       $serialnumber = 0;
       $counter = 0;
       while($row = mysqli_fetch_array($result))
       {
        $serialnumber++;   

     ?>
     <tr>
     <td><?php echo $serialnumber; ?></td>
     <td><?php echo $row['student_name']; ?>
     <input type="hidden" value="<?php echo $row['student_name']; ?>" name="student_name[]">
     </td>
     <td><?php echo $row['row_number']; ?>
     <input type="hidden" value="<?php echo $row['row_number']; ?>" name="row_number[]">
     </td>

     <td>

     <input type="radio" name="attendance_status[<?php echo $counter;?>]" value="Present" 
     <?php if(isset($_POST['attendance_status'][$counter]) && `enter code here`$_POST['attendance_status'][$counter] == "Present"){

        echo "checked = checked";`enter code here`
     }?>
     required>Present    
     <input type="radio" name= "attendance_status[<?php echo $counter;?>]" value="Absent"
     <?php if(isset($_POST['attendance_status'][$counter]) && $_POST['attendance_status'][$counter] == "Absent"){

        echo "checked = checked";
     }?>
     required>Absent 

      </td>
      </tr>
       <?php 
          $counter++;
       }
       ?>
     </table>

<input type="submit" name="submit" value="Submit" class="btn btn-primary">
PHP
<?php
include("db.php");
include("header.php");

$flag = 0;
$update = 0;

if(isset($_POST['submit']))
{

    $date = date('Y-m-d');
    //$date = "2019-03-14";


    $records = mysqli_query($conn, "select * from attendance_records where date = '$date'");  
    $num = mysqli_num_rows($records);

    if($num)
    {
      foreach($_POST['attendance_status'] as $id=>$attendance_status)
      {

        $student_name= $_POST['student_name'][$id];
        $row_number = $_POST['row_number'][$id];


$result = mysqli_query($conn,"update attendance_records set student_name = '$student_name',row_number = '$row_number', attendance_status = '$attendance_status',date = '$date' where date = '$date'");
         if($result){
             $update=1;

         }

      }
    }
    else
    {
        foreach($_POST['attendance_status'] as $id=>$attendance_status)
        {

            $student_name= $_POST['student_name'][$id];
            $row_number = $_POST['row_number'][$id];
            $date = date("Y-m-d H:i:s");


$sql="insert into attendance_records(student_name,row_number,attendance_status,date)values('$student_name','$row_number','$attendance_status','$date')";
    $result = mysqli_query($conn,$sql);
             if($result)
             {
                 $flag = 1;

             }
        }   

    }

}

数据库表 出勤率 id,学生姓名,行号

出勤记录 ID,学生姓名,行号,出勤状态,日期

我希望在成功将记录插入数据库后,将$ flag变量设置为1,以便显示消息“成功插入了考勤数据”,但这似乎无法正常工作。它不会显示该消息,并且当我在数据库中签入时,不会插入新记录。

1 个答案:

答案 0 :(得分:0)

进行查询时

$sql="insert into attendance_records(student_name,row_number,attendance_status,date)values('$student_name','$row_number','$attendance_status','$date')";

Attenance_records ID必须是自动递增的,或者需要在同一查询中插入ID值