如何让待处理状态自动显示?
Posted
技术标签:
【中文标题】如何让待处理状态自动显示?【英文标题】:How do I get a the pending status to automatically show up? 【发布时间】:2018-06-27 10:47:59 【问题描述】:我有这张休假表格,员工可以在其中申请休假。一切正常,唯一的问题是我无法显示待处理状态。我已经在我的桌子上定义了status
的默认值。
这是我查看树叶时的样子:
view-leave
这是我的表结构:
Table Structure
我不确定你们是否需要我的查看离开代码,但这里是:
<div class="table-responsive">
<table class="table">
<tr>
<th>Employee Name</th>
<th>Phone</th>
<th>Email</th>
<th>From</th>
<th>To</th>
<th>Reason</th>
<th>Status</th>
</tr>
<?php
include ('database.php');
$result = $database->prepare ("SELECT * FROM leaves order by id DESC");
$result ->execute();
for ($count=0; $row_message = $result ->fetch(); $count++)
?>
<tr>
<td><?php echo $row_message['full_name']; ?></td>
<td><?php echo $row_message['phone']; ?></td>
<td><?php echo $row_message['email']; ?></td>
<td><?php echo $row_message['fromdate']; ?></td>
<td><?php echo $row_message['todate']; ?></td>
<td><?php echo $row_message['reason']; ?></td>
<td><?php echo $row_message['status']; ?></td>
</tr>
<?php ?>
</table>
<a href="home"><button type="button" class="btn btn-primary"><i class="glyphicon glyphicon-arrow-left"></i> Back</button></a>
</div>
</div>
【问题讨论】:
请不要包含指向表结构等的链接。请将它们实际粘贴到问题中。 @MatBailie 喜欢粘贴图片吗?我认为只有 10 次以上的代表才能做到这一点。 您似乎插入了数据并且然后应用了默认值? 或者你特意插入了NULL
或者空字符串?仅当您不提供值时,才会在 INSERT
and 期间使用默认值。例如,如果一个表有字段a, b, c
并且c
有一个默认值,您可以使用:INSERT INTO table (a, b) VALUES (1, 2)
。如果您给c
一个值,无论是NULL
还是一个空字符串,都不会应用默认值。在SELECT
期间肯定不会应用它。这意味着您必须UPDATE
这些行。
无论如何你都应该很少使用图片。使用文字。
尝试另一个插入,将状态字段留空
【参考方案1】:
DEFAULT
关键字决定了INSERT
期间的行为,而不是SELECT
期间的行为。无论当前的DEFAULT
是什么,您都会看到表格中的任何值。
如果您在SELECT
期间想要类似于默认值,请尝试以下操作...
SELECT
id,
full_name,
phone,
email,
fromdate,
todate,
reason,
COALESCE(status, 'Pending') AS status
FROM
leaves
ORDER BY
id DESC
这将在您选择数据时将status
中的所有NULL
值替换为'Pending'
。它不会改变表格中的任何内容,只会改变您的结果。
如果您想更改表格中的内容以消除那些“空白”值,您需要执行UPDATE
。
UPDATE
leaves
SET
status = 'Pending'
WHERE
status IS NULL
OR status = ''
如果您以后想阻止空白值进入表格,您需要特别提及您想要的所有字段除了应用默认值。
INSERT INTO
leaves (
full_name,
phone,
email,
fromdate,
todate,
reason
)
VALUES (
'Joe Bloggs',
'555 555 555',
'joe@bloggs.com',
'2017-04-01',
'2018-12-25',
'Just Because'
)
开头的字段名称列表很关键。
如果你跳过它,你是在告诉数据库你想为 every 列设置值,所以你永远不想使用默认值。如果您在列表中包含status
,情况也是如此:即使您提供值NULL
或''
,您也是在告诉数据库您想要的值,而不管默认值是什么。
【讨论】:
以上是关于如何让待处理状态自动显示?的主要内容,如果未能解决你的问题,请参考以下文章