php - 显示已登录的用户详细信息

标签 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);
?>

亨里克

最佳答案

感谢您的建议,因为我使用的是旧版本的 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

谢谢 亨里克

关于php - 显示已登录的用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165949/

相关文章:

php - 如何在 bash 脚本中访问 PHP 环境变量?

php - 无法让简单(无加密)php忘记密码表单工作

php - 从 PHP 调用时 python 导入失败

php - 对 PHP 进行排序 - 2 列,带有公共(public)副标题

mysql - 如何将动态范围添加到数据库(将范围存储在表中)

php - jQuery-UI - 从 .droppable 到 p.array 的 .append(快到了!)

java - @Formula - Hibernate 中的 native 查询语法错误

php - 将整个数据库变成 RESTful API

JavaScript 按类型和大小对变量进行验证

mysql - 模式匹配 MySql 搜索?