2012-09-11 16 views
1

之間的日期,數據庫中記錄的日期格式YYYY-MM-DD,下面是表: -比較我面對我猜的錯誤MySQL和PHP

table

的第一個表是第二個是資金歷史,正如你可以看到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擴展decprecated,但這種編碼是前做很長一段時間,所以我不希望僅通過改變mysqli擴展重做到整個系統。

+0

除了我與NAV的值相同更新它,然後它在缺少要不然也不會星星。 – Furry

+0

如果你var_dump兩個字段在你比較它們的地方,會發生什麼......我在乞求firestream是在下面,需要一個資本Y – Stephen

+0

'$ getdate'被設置爲服務器的當前日期,所以'date_update'只會如果在服務器日期等於'date_update'時運行腳本,則等於'$ getdate'。你想用這個腳本來完成什麼? – JDavis

回答

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>"; 




} 
?> 

爲什麼會出現明星的原因是因爲使用而每一行被選中,因爲你提到的頂部之前的編碼我做,它在滿足這兩個聲明,這需要導航和老導航有所不同,根據該表,它是真實的,接下來從上表基金和$ GETDATE當前日期數據庫日期,這既是也導致這兩個說法是真實的不同並執行if語句編碼。對於我來說,如果不在條件上看到錯誤,那是有點愚蠢的。感謝firestream提供$ getdate解決方案。我犯了一個錯誤,資金歷史表不參與這個錯誤。

這是一個棘手問題:d 乾杯!

2

我認爲你的問題是你如何聲明$ GETDATE

試試這個: $ GETDATE =日期( 'Y-M-d');

+0

似乎不起作用。如果日期相同,我會嘗試放入elseif聲明,然後在沒有恆星的情況下回聲,仍然顯示恆星。 – Furry

+0

@ user1631889,我認爲** firestream **的建議權。檢查php'data'函數的返回值,打印出來。 – triclosan