Php sql数据验证中的循环问题
您好,这是我的用于考勤登录的PHP代码,但是当我删除while循环时,它会输入多个条目 请帮助我得到哪个循环更适合这个编码 当我移除while循环时,它工作得很好。但是,可以在考勤中输入多个条目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
$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>";
}