回显数据库值并创建或更新记录

时间:2017-08-10 14:12:50

标签: php mysql

我为员工创建了一种(可用/不可用)来存储每个工作日的开始和结束时间/日期。

以下是我的目标:

  1. 在扫描个人身份证后,他们会看到自己的照片。
    该数据库还将执行以下操作:
  2. 数据库检查或当前日期有任何记录。
    是=更新停止时间和日期。
    否=创建新条目。
  3. 代码:

    if (isset($_POST['action'])) {
    
    $queryRegistration = "SELECT id, number, startdate FROM timeRegistration";
    $resultRegistration = mysqli_query($conn, $queryRegistration);
    
    while($row = mysqli_fetch_assoc($resultRegistration)) {
        if ($row['number'] == $staffNumber) {
            if ($row['startdate'] == $currentDate) {
    
                echo $row['number'].' '.$row['id'];
                echo '<div class="boxPersons">My Picture</div>';
            } 
          } 
        }
    }
    

    目标1:不起作用。因为它创造了更多的div。我如何管理它只创建一个div?

    目标2:我想用以下函数更新或创建它:

    function newEntryDate() {
         $sql = 'INSERT INTO timeRegistration (id, number, startdate, enddate, starttime, endtime, value) VALUES (NULL, "'. $staffNumber .'", "'. $currentDate .'", "", "'. $currentTime .'", "", "")';
         return $sql;
    }
    

    问题:如何确保在我的脚本中有效?我不知道如何开始。

1 个答案:

答案 0 :(得分:1)

做这样的事情。

如果您的查询检索的行数超过1行,则在查询中设置限制。 最好不要在while循环中使用if语句。

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

$queryRegistration = "SELECT id, number, startdate FROM timeRegistration where startdate =".$currentDate." AND number=".$staffNumber." limit 1;";
$resultRegistration = mysqli_query($conn, $queryRegistration);
$i=0;
while($row = mysqli_fetch_assoc($resultRegistration)) {
     echo '<div class="boxPersons">My Picture</div>';
     $i++;
}
if($i>0){
    newEntryDate();
}