显示登录的用户详细信息

时间:2018-07-04 04:49:46

标签: php mysql

我正在编写供内部使用的出勤页面。现在我遇到一个仅显示登录用户详细信息的问题。谁能改善以下脚本?

<?php

$query_RecBoards ="SELECT * FROM `attend` WHERE 
`m_username`='".$_SESSION["loginMember"]."' ORDER BY `m_time` DESC";
$RecBoards = mysql_query($query_RecBoards); 
$row_RecBoards = mysql_fetch_assoc($RecBoards);

$qry= "SELECT m_name, m_day, time_in, time_out, SEC_TO_TIME(
     CASE WHEN total_sec - 32400 > 0 
          THEN total_sec - 32400 
          ELSE 0 END) overtime,  
   SEC_TO_TIME(
     CASE WHEN total_sec - 32400 < 0 
          THEN 32400 - total_sec 
          ELSE 0 END) shorttime
  FROM
(
  SELECT m_name, m_day, time_in, time_out,
         TIME_TO_SEC(TIMEDIFF(COALESCE(time_out, '17:30:00'),
                          COALESCE(time_in, '08:30:00'))) total_sec
    FROM
  (
   SELECT m_name, m_day, 
       MIN(CASE WHEN m_duty = 'Punchin' THEN m_time END) time_in,
       MIN(CASE WHEN m_duty = 'Punchout' THEN m_time END) time_out
      FROM attend
     GROUP BY m_name, m_day
  ) a
) b";
$result=mysql_query($qry);
?>

亨里克

1 个答案:

答案 0 :(得分:0)

感谢您的建议,因为我使用的是旧版本的PHP,所以这就是我使用旧的扩展名的原因。

最后,我想出了如何显示已登录用户的信息,但是另一个问题是如何每月显示数据?有什么建议吗?

代码的改进部分如下

 SELECT m_name, m_day, 
         MIN(CASE WHEN m_duty = 'punchin' THEN m_time END) time_in,
         MIN(CASE WHEN m_duty = 'punchout' THEN m_time END) time_out
    FROM attend WHERE m_username='".$_SESSION["loginMember"]."'
   GROUP BY m_name, m_day
    )a  LIMIT 0,7

谢谢 亨里克