我对PHP很新,为了更好地理解它我正在构建一个小应用程序,我可以将电影添加到观察列表中,看即将上映的电影,...
现在我正在尝试建立一个最受好评的列表,列出用户按照从最高到最低等级添加的所有电影。
我现在的语法是:
<?php
while($avr = mysql_fetch_array($rating)) {
for ($i=1; $i<5; $i++){ ?>
<li class="movie"><?php echo $i . ' - ' . $avr['title'] . '<div class="movie_rating">' . $avr['vote_avr'] . '</div>'; ?></li>
<?php } } ?>
“$ I小于5;”在for循环中,目前硬编码用于测试,这将被替换为变量。
我遇到的问题是每个“$ avr ['title']”的数量从1到4。所以它在我的页面上打印了4次每个电影标题。我只想要第一部电影的标题是“1”,第二部是“2”等等。
如果我将for循环放在while循环之外,则每部电影都将为“1”。
所以我的问题是,如何在while循环中集成for-loop,每个while循环值只计算一次?
提前致谢。
答案 0 :(得分:4)
您不需要for循环。你只需要一个计数器变量(我将它命名为$i
)你每次进入while循环时都会增加:
$i = 0;
while($avr = mysql_fetch_array($rating)) {
?>
<li class="movie"><?php echo ++$i . ' - ' . $avr['title'] . '<div class="movie_rating">' . $avr['vote_avr'] . '</div>'; ?></li>
<?php
// Increment & Insert ---------^
}
答案 1 :(得分:1)
您不需要for循环。
<?php
$i=1;
while($avr = mysql_fetch_array($rating)) {
<li class="movie"><?php echo $i . ' - ' . $avr['title'] . '<div class="movie_rating">' . $avr['vote_avr'] . '</div>'; ?></li>
<?php $i++;
} ?>
答案 2 :(得分:1)
<?php
$i = 1;
while($avr = mysql_fetch_array($rating)) {
if($i < 5) {
?>
<li class="movie"><?php echo $i . ' - ' . $avr['title'] . '<div class="movie_rating">' . $avr['vote_avr'] . '</div>'; ?></li>
<?php $i++; } } ?>
此外,您可以在所需的else clause
break the loop
添加到iterations