繁体   English   中英

PHP上的空域处理

[英]Null field treatment on PHP

我有一个名为hr events的表,该表在一个字段中输出某个雇员休产假的时间。

return_date字段上,它显示员工休产假的日期。

如果员工还没有回来,我们将设置一个默认值,如下面的CREATE语句所示: CREATE (return_date DATE NOT NULL DEFAULT '0000-00-00',) ;

该报告的最后一个字段应显示该员工活动的最终返回日期: (c.return_date ,'%d/%m/%Y') AS c_return_date 作为一个SQL初学者,我为此感到c.return_date :每当我们有一个(default 0000-00-00)值时, c.return_date带来某种偶然的日期,例如:例如12/01/1999,这是一个NULL领域。

我一直在尝试使用ISNULL(c.return_date, '')ISNULL(c.return_date, 0)来对待它,但是它不起作用。 在上述情况下,最后一个字段应该为空白,但不能为'12 / 01/1999'。

至于PHP,这就是为什么我要编辑此主题,我认为可以通过解决php脚本中的这个问题来解决这个问题:

<?php
    $retorno = (!empty($row['c_return_date'])) ? $row['c_return_date'] : $row['a_return_date'];
    $data = explode('-', $retorno);
    echo date("d/m/Y", mktime(0, 0, 0, $data[1], $data[2] + 1, $data[0]));
?>

我目前正在尝试弄清楚(实际上,更多地弄清楚了这个脚本是如何工作的)如何验证这个脚本,以防出现诸如0000-00-00之类的退货日期(这意味着员工还没有回来)。她的活动),而不显示此类输出(例如12/01/1999)。

我不认为这是一个随机的约会。 这只是MySQL中的0000-00-00代表的日期。

我会使用NULL:

create table hr_events (return_date date default null);

这样,您可以查询列出以下内容:

select * from hr_events where return_date is null;

获取尚未设置return_date所有hr_events行。

我建议允许您的日期字段为空:

CREATE TABLE yourTable (return_date DATE, ...)

然后,允许null在语义上意味着该雇员尚未休产假。 您可以使用COALESCE将该null值替换为某些默认日期:

SELECT COALESCE(return_date, '1999-12-01') AS return_date
FROM yourTable;

毕竟,这是一个php脚本问题。

<?php
                         $retorno = (!empty($row['c_return_date'])) ? $row['c_return_date'] : $row['a_return_date'];
                         $data = explode('-', $retorn);
                         echo date("d/m/Y", mktime(0, 0, 0, $date[1], $date[2] + 1, $date[0]));
                         ?>

我只需要在上面的脚本上添加一条连续的语句,以防止c_return_date显示任何内容,以防a_return_date被注册。 看一下if / else子句:

<?php
                          if ($row['a_return_date'] != "0000-00-00"){
                            $return = (!empty($row['c_return_date'])) ? $row['c_return_date'] : $row['a_return_date'];
                            $data = explode('-', $return);
                             echo date("d/m/Y", mktime(0, 0, 0, $date[1], $date[2] + 1, $date[0]));
                             } else $row['a_return_date_br'] = "-";
                             ?>

谢谢你们。 希望它对其他人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM