2013-03-09 40 views
3

我只是試圖從我的數據庫中顯示一個基本列表或項目,但由於某種原因,它沒有顯示第一個項目,所以如果只有一個類別中的東西它不顯示任何東西,但如果有2它會顯示一個項目。我已經添加了下面的代碼。PHP while循環沒有顯示第一個項目?

查詢

//this query will fetch 4 records only! 
$latestVideos = mysql_query("SELECT * FROM table ORDER BY date DESC LIMIT 5")or die(mysql_error()); 

$posts = mysql_fetch_array($latestVideos); 

While循環

while($posts = mysql_fetch_array($latestVideos)){ 

$dateFormat= $posts['video_date']; 
$newDate=date('d-m-Y',strtotime($dateFormat)); 

echo $posts['video_title'] 
echo $newDate; 
echo $posts['video_embed']; 
} 

回答

7

mysql_fetch_array用於在while循環的每次迭代返回陣列的行。

額外mysql_fetch_array,採用第一行進入後,並在while循環的第一次迭代,它把第二行進入後。

這是你應該做的事情。

$latestVideos = mysql_query("SELECT * FROM table ORDER BY date DESC LIMIT 5")or die(mysql_error()); 

while($posts = mysql_fetch_array($latestVideos)){ 
//do stuff here 
} 
+0

因此可能我只是做$帖= $ latestVideos? – huddds 2013-03-09 20:17:25

+0

編輯答案。這應該對你有所幫助。 – 2013-03-09 20:19:48

+0

非常感謝,這就是被竊聽我一會兒 – huddds 2013-03-09 20:24:09

2

您正在使用mysql_fetch_array獲取一次,但未使用結果。你正在讀第一行,然後把它扔掉。

$posts = mysql_fetch_array(...); # Reads 1st row 
while ($post = mysql_fetch_array()) { # reads 2nd-Nth row 
} 
3

它看起來像你第一次調用「$ posts = mysql_fetch_array($ latestVideos);」第一行被檢索並從$ latestVideos中刪除。然後while循環遍歷其他行。