1

我猜我遇到了一个错误,数据库将日期格式记录为 YYYY-MM-DD,下表是:-

桌子

第一个表是基金,第二个是基金历史,你可以看到 LibraIncomeExtra Fund 的日期相同,但它仍然显示星星。以下是我的编码:-

<?php

$result = mysql_query("SELECT * FROM funds");
$numrows = mysql_num_rows($result);
$getdate = date('y-m-j');
while($row = mysql_fetch_array($result)) 
  {

echo "<tr>";
echo "<td>";
echo "<center>";

if ($row['nav'] != $row['oldnav'])
{

if ($row['date_update'] != $getdate)
{
echo "" .$row['fundname']. "**";
$latestupdate = $row['date_update'];
}

}
else
{
    echo $row['fundname'];

}



echo "</center>";
echo "</td>";
echo "<td>";
echo"<center>";
echo $row['nav'];
echo "</center>";
echo "</td>";
echo "</tr>";


  }
?>

任何人都可以解释这个吗?我知道不推荐使用 mysql 扩展,但是这种编码是很久以前编写的,所以我不希望仅通过更改 mysqli 扩展来重做整个系统。

4

2 回答 2

2

我认为你的问题是你如何声明 $getdate

试试这个: $getdate = date('Ymd');

于 2012-09-11T01:58:58.590 回答
0

我设法通过使用以下编码自己解决了这个问题:

<?php

$result = mysql_query("SELECT * FROM funds");
$numrows = mysql_num_rows($result);
$getdate = date('Y-m-d');

while($row = mysql_fetch_array($result)) 
  {

echo "<tr>";
echo "<td>";
echo "<center>";

if ($row['date_update'] == $getdate)
{
    echo "" .$row['fundname']. "**";
    $latestupdate = $row['date_update'];
}

else
{
    echo $row['fundname'];
}


echo "</center>";
echo "</td>";
echo "<td>";
echo"<center>";
echo $row['nav'];
echo "</center>";
echo "</td>";
echo "</tr>";




 }
?>

它显示星号的原因是因为正在检查对每一行使用while,当你参考我之前的代码时,它满足两个语句,这要求nav和old nav不同,根据表格,这是正确的,接下来是表资金数据库中的日期和 $getdate 上的当前日期,这两者也是不同的,导致两个语句都为真并执行 if 语句编码。在 if 条件下看不到错误对我来说有点愚蠢。感谢 firestream 提供了 $getdate 解决方案。我犯了一个错误,fundhistory 表不涉及此错误。

这是一个棘手的问题:D 干杯!

于 2012-09-11T03:25:38.957 回答