mysql_fetch_array()不显示所有结果

时间:2012-09-12 21:23:20

标签: php mysql arrays

我有一个带有日历表的数据库(每行代表一天),有4年的行(2012年,2013年,2014年,2015年)。我今年使用了名称calyear。

我使用以下代码查找不同年份的值,然后显示它:

$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 个答案:

答案 0 :(得分:1)

也许第四个值是空值或空白,当你回显它时,你根本看不到它。

执行desc calendar并找出为calyear列设置的默认值。

然后执行select count(*) from calendar where calyear is nullselect count(*) from calendar where calyear = <whatever the default you've set>,看看它是否为空白或空值。

相关问题