0

这是我在此的头一篇博文。我昨天花了整个时间在网上寻找答案,但我认为我在这里有一个相当不寻常的 while 循环应用程序,所以我没有取得太大的成功。

基本上我有几个类别,例如标题为“ Kosove ”和“ Shqiperi ”。其中每一个都有许多子部分。这些子部分可能有也可能没有内容。我正在使用 while 循环来显示子部分,前提是它们里面确实有内容。

这是我的代码:

 <ul>
       <?php while(osc_has_list_regions($country = 'kv') ) { ?>

       <li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
                    <?php } ?>
 </ul>

请注意,在这种情况下,“$country = 'kv'”将类别标识为“ Kosove ”。生成的是:

  • 普里什廷(1)
  • 武什崔(1)

这很好。

当我还想显示另一个类别的小节时,就会出现问题,例如 Shqiperi。代码:

<ul>
      <?php while(osc_has_list_regions($country = 'kv') ) { ?>

       <li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
                    <?php } ?>
</ul>

    <br><br>

<ul>
          <?php while(osc_has_list_regions($country = 'al') ) { ?>

          <li><a href="<?php echo osc_list_region_url(); ?>"><?php echo osc_list_region_name(); ?></a> <em>(<?php echo osc_list_region_items(); ?>)</em></li>
                    <?php } ?>
    </ul>

再次注意,在这种情况下,“$country = 'al'”将类别标识为“ Shqiperi ”。生成的是:

  • 普里什廷(1)
  • 武什崔(1)

  • 普里什廷(1)

  • 武什崔(1)

这是不正确的。代码的第二部分忽略了“al”,只是重复了前面的 while 循环内容(即“kv”的小节)。

它应该是:

  • 普里什廷(1)
  • 武什崔(1)

  • 培拉特(1)

因为“Berat”是“Shqiperi”类别的适当小节。

如果我将“ $country = 'al'” 作为第一个 while 循环条件,则显示:

  • 培拉特(1)

  • 培拉特(1)

所以显然顺序很重要。似乎之前的循环没有正确关闭。

我对 PHP 很陌生,我什至不确定我是否在这里适当地使用了 while 循环。任何如何解决此问题的建议将不胜感激。

4

0 回答 0