1

私は推測するバグに直面しています。データベースは日付形式をYYYY-MM-DDとして記録します。以下は表です:-

テーブル

LibraIncomeExtra Fundの日付は同じですが、星が表示されていることがわかるように、最初のテーブルはファンドで、2番目のテーブルはファンド履歴です。以下は私のコーディングです:-

<?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拡張子がdecprecedされていることは知っていますが、このコーディングはかなり前に行われたため、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の現在の日付はどちらも異なり、両方のステートメントがtrueになり、ifステートメントのコーディングが実行されます。if条件の間違いを見ないのはちょっとばかげています。その$getdateソリューションを提供してくれたfirestreamに感謝します。そして私は間違いを犯しました、fundshistoryテーブルはこのエラーに関与していません。

これはトリッキーな質問です:D乾杯!

于 2012-09-11T03:25:38.957 に答える