我目前正在构建一个基本的时钟输入/输出系统。
我的绝大多数都在工作,但我只需要一些指导。
用户最初会显示一个页面(index.php),他们必须从下拉列表中选择他们的名字(从数据库填充),然后点击“登录”。当他们点击“登录”时,他们选择的名称将被发布到下一页(clock.php),该页面显示他们的名字并要求他们通过2个按钮进入时钟或退出。
2个按钮(时钟输入和时钟输出),我想根据存储在' clockAction'中的当前值隐藏其中一个按钮。我的MySQL数据库中的列(" In"或" Out")。
当用户单击其中一个按钮时,会将一个条目添加到数据库中,并使用唯一ID,名称和按下的按钮。数据库还在其自己的列中添加时间戳。
我基本上需要一个查询表查询是否已登录'用户是'时钟输入' (由ClockAction值指定" In")如果是,则仅显示' Clock Out'页面上的按钮。反之亦然。但这必须是他们最近的条目。
我目前有这个SQL查询:
SELECT id, user, time
FROM clock
WHERE user = '" . $user ."'
ORDER BY time DESC LIMIT 1
直接在PHPmyAdmin上输入时有效(显然我必须手动指定$ user)。但我不确定如何将其结构化为if和else语句。
这听起来令人困惑,但它是一个非常基本的前提,我只是无法弄清楚如何实现这一目标。
提前致谢,如果有人需要澄清,我很乐意这样做。
杰克:)
答案 0 :(得分:1)
将您的clockAction
字段添加到您的查询中。
SELECT id, user, time, clockAction
FROM clock
WHERE user = '" . $user ."'
ORDER BY time DESC LIMIT 1
并比较此字段的内容(假设您已将查询结果读取到assoziative数组$result
)
if ($result['clockAction'] == 'In') {
// do something
} else {
// do the opposite
}
答案 1 :(得分:1)
如果我正确理解您的问题,您的clock.php脚本需要在数据库中查询当前登录用户的最新条目,并查看最后一个条目是“In”还是“Out”的clockAction。我会写一个查询:
SELECT clockAction FROM clock WHERE user = '.$user.' ORDER BY time DESC LIMIT 1
由于您只需要知道用户的最新条目是“In”还是“Out”,查询只需要返回clockAction列,并使用ORDER按时间DESC,您将获得最新条目的下降条目列表,如果“时间”按时间顺序,LIMIT 1将返回该最新条目。然后,您的PHP脚本可以将查询结果分配给变量,例如$ lastClockAction,并且该变量可用于呈现一个按钮或另一个按钮,如下所示:
if ($lastClockAction == 'In') //code to render "Clock Out" button
else // code to render "Clock In" button
这甚至可以工作如果登录用户没有任何条目,那么您的脚本应该只向浏览器呈现“Clock In”按钮。