2014-12-05 134 views
0

我的客户要求我显示他们的员工进出生物识别技术..我已经做到了,但它只显示了1天的数据。有人可以帮助我..如果你可以看到我有很多的代码,并且它不能满足我的客户。我在这工作了近一个月 这是我的代码..我是一个初学者。我无法显示缺席的多天

<?php 
if (session_status() == PHP_SESSION_NONE) { 
    session_start(); 
} 
    if(isset($_REQUEST['startdate']) && isset($_REQUEST['enddate'])) 
    { 

     $startdate = $_REQUEST['startdate']; 
     $enddate = $_REQUEST['enddate']; 
     $shiftdate = $_REQUEST['shiftdate']; 
     $category= $_REQUEST['category']; 
      $counterless = 0; 
      $ncounter = 0; 
      $count =0 ; 
      $loop=0; 
      $holder=0; 
      $checker=0; 
      $wala = 0; 
      $present = 0; 
      /*$_SESSION['nightname'] = array(); 
      $_SESSION['nighttime'] = array(); 
      $_SESSION['testname'] = array(); 
      $_SESSION['testtime'] = array();*/ 

      $con = mysqli_connect("localhost","root","","testingdb"); 
      $connect = mysqli_connect("localhost","root","","inoutchecking"); 

      mysqli_query($con,"delete from forprint"); 
      mysqli_query($con,"delete from absentforprint"); 

      $result = mysqli_query($con,"select * from wawart where Column_2 = '$startdate' order by Column_2 asc"); 
      if(mysqli_num_rows($result)>0) 
      { 
       while($row = mysqli_fetch_array($result)) 
       { 
        $time = $row['Column_3']; 
        $times = (int)($time); 
        $inout = $row['Column_4']; 
        $dates = $row['Column_2']; 

        if(($times <= 14 and $inout == '1') or ($times >=17 and $inout == '4')) 
        { 
         $_SESSION['testname'][$counterless] = $row['Column_1']; 
         $_SESSION['testtime'][$counterless] = $time; 
         $counterless++; 
        } 
        if(($times <= 20 and $times >= 15) and $inout == '1') 
        { 
         $_SESSION['nightname'][$ncounter] = $row['Column_1']; 
         $_SESSION['nighttime'][$ncounter] = $time; 
         $ncounter++; 
        } 
       } 
       $wala=1; 
      } 
      else 
      { 
       $wala=0; 
      } 


      if($category == 'dayshift') 
      { 
       $shift = 'Day Shift'; 
      } 
      else if($category == 'nightshift') 
      { 
       $shift = 'Night Shift'; 
      } 
      else 
      { 
       $shift = 'Night Shift and Day Shift'; 
      } 
      echo "<label class='cat'>".$shift."</label>"; 
      echo "<label class='absent'>Absentees ".$startdate."</label>"; 
      if($category == 'dayshift') 
      { 
       mysqli_query($connect,"insert into forprint (empid,lastname,firstname,department,section,timein,timeout,stat) values('Employee Number','Lastname','Firstname','Department','Section','Time in','Time out','Shift')"); 
       echo "<div class='dayshift'> <table class='CSSTableGenerator'><tr><th>Emp#</th><th>LASTNAME</th><th>FIRSTNAME</th><th>DEPARTMENT</th><th>SECTION</th><th>DATE</th><th>IN</th><th>OUT</th></tr>"; 
        for($x = 0; $x<$counterless;$x++) 
        { 
         $dempid = $_SESSION['testname'][$x]; 
         $day = mysqli_query($connect,"select * from nightshiftlist where empid = '$dempid' and shift ='dayshift' and datefrom = '$shiftdate' and datehired <= '$startdate'"); 
         while($empinfo = mysqli_fetch_array($day)) 
         { 
          $count++; 
          if($loop == '1') 
          { 
           echo "<td>NO OUT</td></tr>"; 
           $loop=0; 
          } 

          $empid = $empinfo['empid']; 
          $empshift = $empinfo['shift']; 
          $name = $empinfo['lastname']; 
          $fname = $empinfo['firstname']; 
          $dept = $empinfo['department']; 
          $section = $empinfo['section']; 
          $checking = mysqli_query($con,"select * from wawart where Column_1='$empid' and (Column_2 between '$startdate' and '$enddate') order by Column_2 asc"); 
          if($holder == $empinfo['empid']) 
          { 
           break; 
          } 
          echo"<tr><td>".$empinfo['empid']."</td><td>".$empinfo['lastname']."</td><td>".$empinfo['firstname']."</td><td>".$empinfo['department']."</td><td>".$empinfo['section']."</td>"; 
          if(mysqli_num_rows($checking)>0) 
          { 




           while($row=mysqli_fetch_array($checking)) 
           { 
            $time = $row['Column_3']; 
            $times = (int)$time; 
            if($holder == $empinfo['empid']) 
            { 
             break; 
            } 
            else 
            { 
              $inout = $row['Column_4']; 
              $time = $row['Column_3']; 
              if($loop ==0) 
              { 
               $date = $row['Column_2']; 
                echo"<td>".$row['Column_2']."</td>"; 
              } 
              if($loop ==0) 
              { 
               if($inout == '1') 
               { 
                $timein = $time; 
                echo "<td>".$time."</td>"; 
                $loop = 1; 
               } 
               if($inout == '4') 
               { 
                $timein = 'NO IN'; 
                $timeout = $time; 
                echo "<td><B>NO IN</td><td>".$time."</td></tr>"; 
                $holder = $empinfo['empid']; 
                $loop = 0; 
               } 

              } 
              else 
              { 
                if($loop =='1' && $inout == '4') 
                { 
                 $timeout = $time; 
                 echo "<td>".$time."</td></tr>"; 
                } 
                if($loop =='1' && $inout == '1') 
                { 
                 $timeout = 'NO OUT'; 
                 echo "<td><B>NO OUT</td></tr>"; 
                } 
                $loop = 0; 
                $counter = 0; 
                $holder = $empinfo['empid']; 
                $checker = 2; 


                if($checker == 2) 
                { 
                 mysqli_query($connect,"insert into forprint (empid,lastname,firstname,department,section,timein,timeout,stat) values('$empid','$name','$fname','$dept','$section','$timein','$timeout','$empshift')"); 
                 if (mysqli_connect_errno()) 
                 { 
                   printf("Connect failed: %s\n", mysqli_connect_error()); 
                   exit(); 
                 } 
                } 
              } 

            } 
           } 
          } 
          ini_set('max_execution_time', 999999); 
         } 
        } 
       echo"</table></div>"; 

       /*absentees*/ 
       if($wala == 1) 
       { 
        $count = 0; 
        mysqli_query($connect,"insert into absentforprint (empid,lastname,firstname,department,section) values ('Employee Number','Lastname','Firstname','Department','Section')"); 
        echo "<div class='absentees'> <table class='CSSTableGenerator'><tr><th>Emp#</th><th>LASTNAME</th><th>FIRSTNAME</th><th>DEPARTMENT</th><th>SECTION</th></tr>"; 
         $day = mysqli_query($connect,"select * from nightshiftlist where shift ='dayshift' and datefrom = '$shiftdate' and datehired <= '$startdate'"); 
          while($empinfo = mysqli_fetch_array($day)) 
          { 
           $id = $empinfo['empid']; 
           $shift = $empinfo['shift']; 
           $lname = $empinfo['lastname']; 
           $fname = $empinfo['firstname']; 
           $date = $empinfo['datefrom']; 
           $dept = $empinfo['department']; 
           $section = $empinfo['section']; 

           for($x = 0; $x<$counterless;$x++) 
           { 
            $dempid = $_SESSION['testname'][$x]; 
            if($id == $dempid) 
            { 
             $present = 1; 
             break; 
            } 
            else 
            { 
             $present = 0; 
            } 
            ini_set('max_execution_time', 999999); 
           } 
           if($present == 0) 
           { 

             echo "<tr><td>".$id."</td><td>".$lname."</td><td>".$fname."</td><td>".$dept."</td><td>".$section."</td></tr>"; 
             mysqli_query($connect,"insert into absentforprint (empid,lastname,firstname,department,section) values ('$id','$lname','$fname','$dept','$section')"); 
             ini_set('max_execution_time', 999999); 
            $count++; 
           } 

          } 

        echo"</table></div>"; 
        echo"<label class='totalabs'>Total Number of Absentees ".$count."</label>"; 

       } 
      }/*end of absentees*/ 

      if($category == 'nightshift') 
      { 
       mysqli_query($connect,"insert into forprint (empid,lastname,firstname,department,section,timein,timeout,stat) values('Employee Number','Lastname','Firstname','Department','Section','Time in','Time out','Shift')"); 
       echo "<div class='dayshift'> <table class='CSSTableGenerator'><tr><th>Emp#</th><th>LASTNAME</th><th>FIRSTNAME</th><th>DATE</th><th>DEPARTMENT</th><th>SECTION</th><th>IN</th><th>OUT</th></tr>"; 
        for($x = 0; $x<$ncounter;$x++) 
        { 
         $dempid = $_SESSION['nightname'][$x]; 
         $day = mysqli_query($connect,"select * from nightshiftlist where empid = '$dempid' and shift = 'nightshift' and datefrom = '$shiftdate' and datehired <= '$startdate'"); 
         while($empinfo = mysqli_fetch_array($day)) 
         { 
          $count++; 
          if($loop == '1') 
          { 
           echo "<td>NO OUT</td></tr>"; 
           $loop=0; 
          } 

          $empid = $empinfo['empid']; 
          $empshift = $empinfo['shift']; 
          $name = $empinfo['lastname']; 
          $fname = $empinfo['firstname']; 
          $dept = $empinfo['department']; 
          $section = $empinfo['section']; 
          $checking = mysqli_query($con,"select * from wawart where Column_1='$empid' and (Column_2 between '$startdate' and '$enddate') order by Column_2 asc"); 
          if($holder == $empinfo['empid']) 
          { 
           break; 
          } 
          echo"<tr><td>".$empinfo['empid']."</td><td>".$empinfo['lastname']."</td><td>".$empinfo['firstname']."</td><td>".$empinfo['department']."</td><td>".$empinfo['section']."</td>"; 
          if(mysqli_num_rows($checking)>0) 
          { 




           while($row=mysqli_fetch_array($checking)) 
           { 
            $time = $row['Column_3']; 
            $times = (int)$time; 
            if($holder == $empinfo['empid']) 
            { 
             break; 
            } 
            else 
            { 
              $inout = $row['Column_4']; 
              $time = $row['Column_3']; 
              $dates = $row['Column_2']; 
              if($loop ==0 && $inout == '1'&& $dates == $startdate) 
              { 
               $date = $row['Column_2']; 
                echo"<td>".$row['Column_2']."</td>"; 
              } 
              if($loop ==0 && $dates == $startdate) 
              { 
               if($inout == '1') 
               { 
                $timein = $time; 
                echo "<td>".$time."</td>"; 
                $loop = 1; 
               } 
               if($inout == '4') 
               { 
                $timein = 'NO IN'; 
                $loop = 0; 
               } 

              } 
              else 
              { 
                if($loop =='1' && $inout == '4') 
                { 
                 $timeout = $time; 
                 echo "<td>".$time."</td></tr>"; 
                } 
                if($loop =='1' && $inout == '1') 
                { 
                 $timeout = 'NO OUT'; 
                 echo "<td><B>NO OUT</td></tr>"; 
                } 

                $loop = 0; 
                $counter = 0; 
                $holder = $empinfo['empid']; 
                $checker = 2; 
                if($checker == 2) 
                { 
                 mysqli_query($connect,"insert into forprint (empid,lastname,firstname,department,section,timein,timeout,stat) values('$dempid','$name','$fname','$dept','$section','$timein','$timeout','$empshift')"); 
                 if (mysqli_connect_errno()) 
                 { 
                   printf("Connect failed: %s\n", mysqli_connect_error()); 
                   exit(); 
                 } 
                } 
              } 

            } 
           } 
          } 
          ini_set('max_execution_time', 999999); 
         } 
        } 
       echo"</table></div>"; 
       /*absentees*/ 
       if($wala == 1) 
       { 
        $count = 0; 
        mysqli_query($connect,"insert into absentforprint (empid,lastname,firstname,department,section) values ('Employee Number','Lastname','Firstname','Department','Section')"); 
        echo "<div class='absentees'> <table class='CSSTableGenerator'><tr><th>Emp#</th><th>LASTNAME</th><th>FIRSTNAME</th><th>DEPARTMENT</th><th>SECTION</th></tr>"; 
         $day = mysqli_query($connect,"select * from nightshiftlist where shift ='nightshift' and datefrom = '$shiftdate' and datehired <= '$startdate'"); 
          while($empinfo = mysqli_fetch_array($day)) 
          { 
           $id = $empinfo['empid']; 
           $shift = $empinfo['shift']; 
           $lname = $empinfo['lastname']; 
           $fname = $empinfo['firstname']; 
           $dept = $empinfo['department']; 
           $section = $empinfo['section']; 
           for($x = 0; $x<$ncounter;$x++) 
           { 
            $dempid = $_SESSION['nightname'][$x]; 
            if($id == $dempid) 
            { 
             $present = 1; 
             break; 
            } 
            else 
            { 
             $present = 0; 
            } 
            ini_set('max_execution_time', 999999); 
           } 
           if($present == 0) 
           { 

             echo "<tr><td>".$id."</td><td>".$lname."</td><td>".$fname."</td><td>".$dept."</td><td>".$section."</td></tr>"; 
             mysqli_query($connect,"insert into absentforprint (empid,lastname,firstname,department,section) values ('$id','$lname','$fname','$dept','$section')"); 
            $count++; 
           } 

           ini_set('max_execution_time', 999999); 
          } 
        echo"</table></div>"; 
        echo"<label class='totalabs'>Total Number of Absentees ".$count."</label>"; 

       } 
      }/*end of absentees*/ 

} 

?> 

回答

0

您正在执行的第一个sql select查询需要更正。您的select sql查询不考虑结束日期。尝试以下查询

$result = mysqli_query($con,"select * from wawart where Column_2 >= '$startdate' and Column_2 <= '$enddate' order by Column_2 asc");