PHP while循环没有显示第一项?

时间:2013-03-09 20:14:08

标签: php mysql loops while-loop

我只是想从我的数据库中显示一个基本列表或项目,但由于某种原因它没有显示第一个项目,所以如果一个类别中只有一个东西它没有显示任何东西,但是如果有2它将会显示一个项目。我已添加以下代码。

查询

 //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'];
 }

3 个答案:

答案 0 :(得分:8)

mysql_fetch_array用于在while循环的每次迭代中返回一行数组。

额外mysql_fetch_array将第一行放入post,并在while循环的第一次迭代中将第二行放入post。

这就是你应该做的。

$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
 }

答案 1 :(得分:3)

看起来你第一次打电话给“$ posts = mysql_fetch_array($ latestVideos);”第一行被检索并从$ latestVideos中删除。然后while循环遍历其他行。

答案 2 :(得分:2)

您使用mysql_fetch_array获取一次,但之后不使用结果。你正在阅读第一行,然后扔掉它。

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