繁体   English   中英

PHP for循环在while循环内

[英]PHP for loop inside a while loop

我是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”。

所以我的问题是,如何将for循环集成到while循环中,而while循环仅对每个while循环值计数一次?

提前致谢。

您不需要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 ---------^
}

您不需要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++;
  } ?>
<?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以在所需的iterationsbreak the loop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM