2012-09-12 65 views
0

我有一個帶有4年行(2012,2013,2014,2015)的日曆表(每行代表一天)的數據庫。我使用列名calyear一年。mysql_fetch_array()不顯示所有結果

我用下面的代碼中查找值不同的幾年然後顯示它:

$year = mysql_query("SELECT DISTINCT calyear FROM calendar"); 

while($yeararray = mysql_fetch_array($year)) 
{ 
echo($yeararray['calyear']."<br />"); 
} 

問題是它只顯示年到2013年,2014年,2015年,即使​​當我使用

echo(mysql_num_rows($year); 

它顯示我認爲所有4年的價值4。我不太確定我在哪裏出錯。

*編輯*

感謝您的建議,但我發現這個問題,這是我自己的愚蠢。

我有$year查詢在頁面的頂部和後來的while循環(我需要它)。我之前將$yeararray = mysql_fetch_array($year)放在$year的正下方,所以我在頁面上放了兩遍,當我移除頂端的冗餘代碼時,代碼運行良好。

謝謝抱歉!

+1

也許數據庫在第四行返回這三年加'null'?在給出你的描述的時候,這是我能想到的唯一的事情。 – Nelson

+0

使用var_dump檢查變量中的內容... – mahen3d

回答

1

也許第四個值是空或空白,當你迴應它時,你根本看不到它。

做一個desc calendar並找出什麼默認值設置列calyear。

然後做一個select count(*) from calendar where calyear is nullselect count(*) from calendar where calyear = <whatever the default you've set>看看它是一個空白或空值正在拾起。

+0

但是,如果我帶走了While循環並且只有echo($ yeararray ['calyear']),它只會顯示2012年。當我將它放入While時,2012正在丟失某處循環 – user1666995