繁体   English   中英

如何检查php中的MySQL日期是否不为null

[英]how to check if mysql date is not null in php

我正在尝试完成我的项目,目前停留在mysql日期字段中。 我要尝试的是:如果没有设置日期,请显示“ ei olemääritelty”文本。 但是,该代码将引发默认日期为01.01.1970。

我正在检查该字段是否不为null,当我使用if条件时,我说的是if($aloitus_pvm3_tulos_result > 0) ,这似乎不正确。

这是我代码的一部分,希望您能告诉我我的错误。

if(mysql_num_rows($tilaukset1)>0)
{
    echo "<h3>Muut Tilaukset</h3>";

    $tilaukset = mysql_query("SELECT * FROM tilaus WHERE user_id = '".$id."' AND status != 'TILATTU'");


    echo "<table border='1'>";
    echo "<tr>";
    echo "<th> Tilaaja </th>";
    echo "<th> Työn kuvaus </th>";
    echo "<th> Tilaus pvm </th>";
    echo "<th> status </th>";
    echo "<th> aloituspvm</th>";
    echo "<th> valmistumispvm </th>";
    echo "<th> hyvaksymispvm </th>";
    echo "<th> tehtytyo </th>";
    echo "<th> tunti </th>";
    echo "<th> tarvikkeet </th>";
    echo "<th> kustannukset </th>";
    echo "</tr>";
    while($row = mysql_fetch_array($tilaukset))
    {



        $tilattu_pvm3_tulos = mysql_query("SELECT * FROM tilaus WHERE tilauspvm IS NOT NULL");
        $tilattu_pvm3_tulos_result = mysql_fetch_array($tilattu_pvm3_tulos);

        $aloitus_pvm3_tulos = mysql_query("SELECT * FROM tilaus WHERE aloituspvm IS NOT NULL");
        $aloitus_pvm3_tulos_result = mysql_fetch_array($aloitus_pvm3_tulos);

        $valmis_pvm3_tulos = mysql_query("SELECT * FROM tilaus WHERE valmistumispvm IS NOT NULL");
        $valmis_pvm3_tulos_result = mysql_fetch_array($valmis_pvm3_tulos);

        $hyvaksymis_pvm3_tulos = mysql_query("SELECT * FROM tilaus WHERE hyvaksymispvm IS NOT NULL");
        $hyvaksymis_pvm3_tulos_result = mysql_fetch_array($hyvaksymis_pvm3_tulos);

        if($tilattu_pvm3_tulos_result > 0)
        {
            $tilattu_pvm3 = date ('d.m.Y', strtotime($row['tilauspvm']));
        }
        else
        {
            $tilattu_pvm3 =  'ei ole määritelty';
        }

        ///////////////////////////////////////////////////////////////////////////////

        if($aloitus_pvm3_tulos_result > 0)
        {
            $aloitus_pvm3 = date('d.m.Y', strtotime($row['aloituspvm']));
        }
        else
        {
            $aloitus_pvm3 =  'ei ole määritelty';
        }

        ///////////////////////////////////////////////////////////////////////////////

        if($valmis_pvm3_tulos_result > 0)
        {
            $valmis_pvm3 = date('d.m.Y', strtotime($row['valmistumispvm']));
        }
        else
        {
            $valmis_pvm3 =  'ei ole määritelty';
        }

        ////////////////////////////////////////////////////////////////////////////////


        if($hyvaksymis_pvm3_tulos_result > 0)
        {
            $hyvaksymis_pvm3 = date('d.m.Y', strtotime($row['hyvaksymispvm']));
        }
        else
        {
            $hyvaksymis_pvm3 =  'ei ole määritelty';
        }





        echo "<tr>";
        echo "<td>" . $row['tilaaja'] . " </td> 
              <td>" . $row['kuvaus'] . "</td> 
              <td>" . $tilattu_pvm3 . "</td>
              <td>" . $row['status'] . "</td>
              <td>" . $aloitus_pvm3 . "</td>
              <td>" . $valmis_pvm3 . "</td>
              <td>" . $hyvaksymis_pvm3 . "</td>
              <td>" . $row['tehtytyo'] . "</td>
              <td>" . $row['tunti'] . "</td>
              <td>" . $row['tarvikkeet'] . "</td>
              <td>" . $row['kustannukset'] . "</td>";
        echo "</tr>";

    }

    echo "</table>";

}

尽管您所说的日期为“空”在某种程度上取决于您要回退的内容,但是实际上最快的方法是检查它是否为空:

if(!is_null($tilattu_pvm3_tulos_result['tilauspvm']))

当然,PHP就是它的存在,有一种更快的方法:

if($tilattu_pvm3_tulos_result['tilauspvm'])

如果为null,则将返回false。

对于您要验证的领域,我也有些困惑。 在strtotime中,您使用最外层while的结果(并从$row提取数据),但是在创建if语句时,使用$tilattu_pvm3_tulos_result吗? 并不是说这是错误的,只是说我没有遵循您要检查的内容-因此您可能需要调整我的代码以最适合您的逻辑。

暂无
暂无

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

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