-1

我的目标:一旦按下按钮,就无法再次按下。它应该给出错误或某种消息,例如(当第一次按下按钮以标记出勤并且有人再次按下它时)

"已标记出勤,您不能再次标记您的出勤"

 <?php 
 session_start();

 ?>
 <form method="post">
 <button name="attendence" >mark attendence  </button>
 </form>


<?php

if (isset($_POST['attendence'])){
    $id =$_SESSION["id"];
    $con = mysqli_connect('localhost','root','','yo');
    $query = "INSERT INTO attendance (present,absent, datetime, std_id) VALUES ('present','',current_timestamp(), $id ) ";
    $rs=mysqli_query($con,$query);

    if($rs){
        echo "Marked as Present";
    }
    else {
        echo "marked as Absent";
    }
    
}
4

2 回答 2

0

如果学生已经被此代码标记为存在,您必须在数据库中搜索:

$id =$_SESSION["id"];
$query = "SELECT * FROM attendance WHERE std_id = '$id' ) ";
$result=mysqli_query($con,$query);
while ($row = mysqli_fetch_assoc($result)) { 
    if ($row['present'] == 'present') {
        echo' Student already marked as present';
    }
    else {
        echo'
        <form method="post">
             <button name="attendence" >mark attendence  </button>
        </form>';
    }
}
于 2021-05-10T20:36:33.613 回答
0

首先:在数据库中搜索学生是否已经被标记/存在。如果他/她在场,请回显“写一些东西”。然后:插入查询以标记存在

<?php

if (isset($_POST['attendence'])){
    $id =$_SESSION["id"];
    $con = mysqli_connect('localhost','root','','yo');
    

    $mark_query = "SELECT * FROM `attendance` WHERE date=CURRENT_DATE and std_id=$id ";

    $result = mysqli_query($con, $mark_query);
    $row = mysqli_fetch_assoc($result);
        
    if ($row['present']=='present') {
        echo "Student already marked ".$row['present'];
    }
        
    else{
        $query = "INSERT INTO attendance (present,absent, datetime, std_id,date,marked_status) VALUES ('present','',current_timestamp(), $id, current_timestamp(),'marked' ) ";
        $rs=mysqli_query($con,$query);

        if($rs){
            echo "Marked as Present";
        }
            

    }
    
}   

?>

于 2021-05-12T21:47:05.933 回答