我正在编写供内部使用的考勤页面。现在我遇到一个问题,它只显示已登录的用户详细信息。谁能改进以下脚本?
<?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/