[英]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.