Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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 sql数据验证中的循环问题_Php_Mysql_Loops_While Loop - Fatal编程技术网

Php sql数据验证中的循环问题

Php sql数据验证中的循环问题,php,mysql,loops,while-loop,Php,Mysql,Loops,While Loop,您好,这是我的用于考勤登录的PHP代码,但是当我删除while循环时,它会输入多个条目 请帮助我得到哪个循环更适合这个编码 当我移除while循环时,它工作得很好。但是,可以在考勤中输入多个条目 <?php $conn = mysqli_connect("localhost", "Vijay", "vijay123", "test"); if (mysqli_connect_errno()) { echo "Unable to connect the Server

您好,这是我的用于考勤登录的PHP代码,但是当我删除while循环时,它会输入多个条目

请帮助我得到哪个循环更适合这个编码

当我移除while循环时,它工作得很好。但是,可以在考勤中输入多个条目

<?php

$conn = mysqli_connect("localhost", "Vijay", "vijay123", "test");
if (mysqli_connect_errno())
    {
        echo "Unable to connect the Server" . mysqli_connect_error();
    }

if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        // getting details from form
        $EmployeeNoA = mysqli_real_escape_string($conn, $_POST['EmployeeNoA']);
        $EmployeeNameA = mysqli_real_escape_string($conn, $_POST['EmployeeNameA']);
        $Shift = mysqli_real_escape_string($conn, $_POST['Shift']);
        $SignInDay = mysqli_real_escape_string($conn, $_POST['SignInDay']);
        $SignInDate = mysqli_real_escape_string($conn, $_POST['SignInDate']);
        $SignInTime = mysqli_real_escape_string($conn, $_POST['SignInTime']);

        if ($Shift == "0")
            {
                echo "<script>alert('Please Select the Shift!');</script>";
            }
        else
            {

                // $rowcount = mysqli_query($conn, "SELECT * From attend");
                // $rowCount = mysqli_num_rows($rowcount);

                $ver = mysqli_query($conn, "SELECT * FROM attend WHERE EmployeeNoA='$EmployeeNoA' && SignInDate='$SignInDate'");
                while ($view = mysqli_fetch_array($ver, MYSQL_ASSOC)) // **it is repeatedly running and store multiple data and error message. 
                    {
                            if ($SignInDate != $view['SignInDate'])
                            {
                                $sql = "INSERT INTO attend (EmployeeNoA, EmployeeNameA, Shift, Day, SignInDate, SignInTime) VALUES ('$EmployeeNoA', '$EmployeeNameA', '$Shift', '$SignInDay', '$SignInDate', '$SignInTime')";

                                if (!mysqli_query($conn, $sql))
                                    {
                                        echo mysqli_error($conn);
                                    }
                                else
                                    {
                                        echo "<script>alert ('You have Signed In!');</script>";
                                    }
                            }
                        else
                            {
                                echo "<script>alert ('You have ALREADY Signed In!');</script>";
                            }
                    }
            }
    }

?>

看起来您只是想测试第一个查询是否返回任何行。使用:

$ver = mysqli_query($conn, "SELECT COUNT(*) AS count FROM attend WHERE EmployeeNoA='$EmployeeNoA' && SignInDate='$SignInDate'");
$row = mysqli_fetch_assoc($ver);
if ($row['count'] == 0) {
    sql = "INSERT INTO attend (EmployeeNoA, EmployeeNameA, Shift, Day, SignInDate, SignInTime) VALUES ('$EmployeeNoA', '$EmployeeNameA', '$Shift', '$SignInDay', '$SignInDate', '$SignInTime')";
    if (!mysqli_query($conn, $sql)) {
        echo mysqli_error($conn);
    } else {
        echo "<script>alert ('You have Signed In!');</script>";
    }
} else {
    echo "<script>alert ('You have ALREADY Signed In!');</script>";
}
$ver=mysqli_query($conn,“选择COUNT(*)作为参加会议时的计数,其中EmployeeNoA='$EmployeeNoA'&&signendate='$signendate');
$row=mysqli\u fetch\u assoc($ver);
如果($row['count']==0){
sql=“在出席(EmployeeNoA、EmployeeNameA、Shift、Day、SignInDate、SignInTime)值(“$EmployeeNoA”、“$EmployeeNameA”、“$Shift”、“$SignInDay”、“$SignInTime”)中插入”;
if(!mysqli_query($conn,$sql)){
echo mysqli_错误($conn);
}否则{
echo“警报('您已登录!');”;
}
}否则{
echo“警报('您已经登录!');”;
}

尝试替换(&O)and@RakeshSharma为什么?在MYSQL中,它们不是一样吗?根据它们的等效性,我已经尝试过了。它不起作用……测试
if($signendate!=$view['signenda'])
将永远不会成功,因为查询中的
WHERE
子句只返回与变量匹配的日期。
$ver = mysqli_query($conn, "SELECT COUNT(*) AS count FROM attend WHERE EmployeeNoA='$EmployeeNoA' && SignInDate='$SignInDate'");
$row = mysqli_fetch_assoc($ver);
if ($row['count'] == 0) {
    sql = "INSERT INTO attend (EmployeeNoA, EmployeeNameA, Shift, Day, SignInDate, SignInTime) VALUES ('$EmployeeNoA', '$EmployeeNameA', '$Shift', '$SignInDay', '$SignInDate', '$SignInTime')";
    if (!mysqli_query($conn, $sql)) {
        echo mysqli_error($conn);
    } else {
        echo "<script>alert ('You have Signed In!');</script>";
    }
} else {
    echo "<script>alert ('You have ALREADY Signed In!');</script>";
}