0

4 年 (2012 年、2013 年、2014 年、2015 年) の行を持つカレンダー テーブル (各行は 1 日を表します) を持つデータベースがあります。年には列名 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ていたので、ページに 2 回配置しました。上部の冗長なものを削除すると、コードは正常に機能しました。

ありがとうございます!

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>を実行して、ピックアップされているのが空白またはnull値であるかどうかを確認します。

于 2012-09-12T21:37:14.973 に答える