为什么我的while循环只从数据库返回一个值


Why is my while loop only returning one value from the database?

PHP

$nextday = mysql_query("SELECT * FROM Tour_Dates WHERE DATEDIFF( tourDate, NOW() ) > 0 ORDER BY tourDate LIMIT 1")or die(mysql_error());
$upcomingdates = mysql_query("SELECT * FROM Tour_Dates WHERE DATEDIFF( tourDate, NOW() ) > 0 ORDER BY tourDate")or die(mysql_error());
$passeddates = mysql_query("SELECT * FROM Tour_Dates WHERE DATEDIFF( tourDate, NOW() ) < 0 ORDER BY tourDate")or die(mysql_error());

HTML

<label class="next-day"><? while($row = mysql_fetch_array($nextday)){echo $row['city'] ."  |  " .date("m.d.Y",strtotime($row['tourDate']));} ?></label>
<div class="upcoming">
<ul>
<?
while($row = mysql_fetch_array($upcomingdates))
{
echo '<li><span class="li-date">'. date("m.d.Y",strtotime($row['tourDate'])) .'</span><span class="li-address">' . $row['address'] . '</span><span class="li-city">' . $row['city'] . '</span><span class="li-time">' . date("g.i A",strtotime($row['tourTime'])).'</span></li>';
}
?>
</ul>
</div>
<div class="passed">
<ul>
<?
while($row = mysql_fetch_array($passeddates))
{
echo '<li><span class="li-date">'. date("m.d.Y",strtotime($row['tourDate'])) .'</span><span class="li-address">' . $row['address'] . '</span><span class="li-city">' . $row['city'] . '</span><span class="li-time">' . date("g.i A",strtotime($row['tourTime'])).'</span></li>';
}
?>
</ul>
</div>

我的猜测是,您使用的是mysql_fetch_array,但随后引用的元素就像它是一个关联数组一样。尝试使用以下方法之一:

mysql_fetch_array($upcomingdates, MYSQL_ASSOC)

mysql_fetch_assoc($upcomingdates)

将表丢弃在数据库中并重新插入,一切都恢复正常!我想我第一次导入时出了问题。