我有这个休假表格,员工可以申请休假。一切正常,唯一的问题是我无法显示待处理状态。我已经在我的桌子上定义了status
的默认值。
这是我查看树叶时的样子:
这是我的桌面结构:
我不确定你们是否需要我的查看 - 请假代码,但现在是:
<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>
&#13;
答案 0 :(得分:0)
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
在您选择数据时,这将用NULL
替换status
中的所有'Pending'
值。它不会改变表格中的任何内容,仅在结果中。
如果你想改变表格中的内容以摆脱那些&#34;空白&#34;值,你需要做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'
)
一开始的字段名称列表至关重要。
如果您跳过它,则告诉数据库要为 每个 列设置值,因此您永远不会想要使用默认值。如果您在列表中添加status
,情况也是如此:即使您提供值NULL
或''
,您也会告诉数据库您的价值是什么想要,不管默认是什么。