2011-04-22 54 views
-1

PHP爲什麼我的while循環只從數據庫返回一個值?

$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> 
+2

確定查詢返回多個值嗎? – 2011-04-22 15:49:57

+0

它正在工作,但現在它只返回一件事。我現在在數據庫中有三件事。你有沒有其他辦法可以做到這一點?我不知道如何把它變成一個foreach循環 – Montez 2011-04-22 15:54:02

+0

嗯,代碼看起來好像到目前爲止。你知道你的查詢中有'LIMIT 1'嗎? – 2011-04-22 15:57:53

回答

0

我的猜測是,你正在使用mysql_fetch_array,但隨後引用元素,就好像是一個關聯數組。嘗試使用以下之一:

mysql_fetch_array($upcomingdates, MYSQL_ASSOC) 

mysql_fetch_assoc($upcomingdates) 
+0

試過。沒有變化 – Montez 2011-04-22 16:05:56

+0

固定!對於我的數據庫設置方式,一定是奇怪的。我重新創建它,現在一切正常。 – Montez 2011-04-22 17:22:55

0

刪除的表在數據庫中,再插入它,一切都工作了!我猜想我第一次導入它時出了問題。

相關問題