首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql数据校验中的循环问题

sql数据校验中的循环问题
EN

Stack Overflow用户
提问于 2014-07-03 16:39:58
回答 1查看 57关注 0票数 0

嗨,这是我的出勤登录PHP代码,但当我删除while循环时,它会输入多个条目。

请帮我找出哪个循环更适合这个编码……

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

代码语言:javascript
复制
<?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>";
                            }
                    }
            }
    }

?>

请在这里找到我的html

代码语言:javascript
复制
<h2 style="text-align:center;margin-bottom:1.5em;margin-top:1.5em;font-family:sans-serif">ATTENDANCE SIGN IN</h2>
<form action="<?php ($_SERVER['PHP_SELF']);?>" method="POST">
<div style="margin-top:20px;margin-left:20px;">
<table cellpadding="5">
<tr><td><label>Employee No:</label></td><td><input type="text" name="EmployeeNoA" value="<?php echo $EmployeeNo; ?>" readonly="readonly"></td></tr>
<tr><td><label>Employee Name:</label></td><td><input type="text" name="EmployeeNameA" value="<?php echo $EmployeeName; ?>" readonly="readonly"></td></tr>
<tr><td style="vertical-align:top;"><label>Shift:</label></td><td>
<select name="Shift" id="Shift">
<option value="0">-- Select --</option>
<option value="Shift1">I Shift</option>
<option value="Shift2">IA Shift</option>
<option value="Shift3">II Shift</option>
<option value="Shift4">General Shift</option>
<option value="Shift5">General A Shift</option>
</select>

<!--<tr><td style="vertical-align:top;"><label>Shift:</label></td><td style="line-height:1.6em; text-align:justify;font-weight:bold;"><input type="radio" name="shift" value="I"> I Shift <span style="font-weight:normal;font-size:small;color:grey;">6:00 - 3:00</span><br/><input type="radio" name="shift" value="IA"> IA Shift <span style="font-weight:normal;font-size:small;color:grey;">7:00 - 4:00</span><br/><input type="radio" name="shift" value="II"> II Shift<br/><input type="radio" name="shift" value="G"> Gen. Shift <span style="font-weight:normal;font-size:small;color:grey;">8:00 - 5:00</span><br/><input type="radio" name="shift" value="G1"> G I Shift <span style="font-weight:normal;font-size:small;color:grey;">10:00 - 7:00</span>--><td></tr>
<tr><td><label>Day:</label></td><td><input style="text-align:center;" type="text" name="SignInDay" value="<?php date_default_timezone_set('Asia/Kolkata'); echo date('l'); ?>" readonly="readonly"></td></tr>
<tr><td><label>SignIn Date:</label></td><td><input style="text-align:center;" type="text" name="SignInDate" value="<?php date_default_timezone_set('Asia/Kolkata'); echo date('Y-m-d'); ?>" readonly="readonly"></td></tr>
<tr><td><label>SignIn Time:</label></td><td><input style="text-align:center;color:blue;" type="text" name="SignInTime" value="<?php date_default_timezone_set('Asia/Kolkata'); echo date('H:i:s'); ?>" readonly="readonly"></td></tr>
<tr><td style="text-align:center;" colspan="2"><input style="margin-top:20px;" type="submit" name="signin" value="Sign In">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<button type="close" name="close" onclick="closeWin()">Exit</button></td></tr>
</table>
</div>
</form>
EN

回答 1

Stack Overflow用户

发布于 2014-07-03 16:53:59

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

代码语言:javascript
复制
$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>";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24548903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档