我正在尝试完成我的项目,但目前卡在 mysql 日期字段中。我想做的是:如果没有设置日期,则显示“ei ole määritelty”文本。但是,代码抛出默认日期,即 01.01.1970。
我正在检查该字段是否不为空,当我使用 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
?并不是说这是错误的,只是说我不遵循您正在检查的内容 - 因此您可能需要调整我的代码以最适合您的逻辑。
关于php - 如何在php中检查mysql日期是否不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975730/