如何让待处理状态自动显示?

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'',您也是在告诉数据库您想要的值,而不管默认值是什么。

【讨论】:

以上是关于如何让待处理状态自动显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 Promise 是不是处于待处理状态 [重复]

简单的 AJAX Get 请求处于“待处理”状态

PayPal webhook 所有事件仍处于待处理状态

为啥已经付款但是订单状态还是待付款?

PayPal REST SDK:删除送货地址和付款授权,使其进入待处理状态[关闭]

4.5 希尔排序