0

我有一个带有 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所以我在页面上有两次,当我删除顶部多余的代码时,代码运行良好。

谢谢和抱歉!

4

1 回答 1

1

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

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

然后执行 aselect count(*) from calendar where calyear is null或 aselect count(*) from calendar where calyear = <whatever the default you've set>以查看它是被拾取的空白值还是空值。

于 2012-09-12T21:37:14.973 回答