Невозможно пропустить рейтинг пост, когда в CakePHP2 нет информации о рейтинге

Это сложно объяснить словами, но я хочу пропустить рейтинг, когда в CakePhp2 нет информации о рейтинге. Например, у меня есть следующие данные, которые содержат 7 строк данных ранжирования. 2 из 7 ряда содержит пустое тело (2-й и 5-й ряд). Поэтому я сделал скрипт, чтобы пропустить рейтинг, который пуст. Однако, начиная со 2-го и 5-го рядов, которые были пропущены. Отображаемая запись данных — 1,3,4,6,7. Но я хочу отображать рейтинг как 1,2,3,4,5. Другими словами, я хочу показать 3-й рейтинг как 2-й и 4-й как 3-й и так далее. Извините за мое плохое объяснение. Проще говоря, я хочу пропустить рейтинг, когда нет информации о рейтинге, и показать номер рейтинга. (PS: я не хочу изменять базу данных) Я буду рад услышать от вас!

   array(7) { [0]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "1" ["title"]=> string(6) "title1" ["body"]=> string(5) "body1" ["created"]=> string(19) "2017-04-04 21:25:43" ["modified"]=> NULL } } [1]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "2" ["title"]=> string(0) "" ["body"]=> string(0) "" ["created"]=> string(19) "2017-04-04 21:25:43" ["modified"]=> NULL } } [2]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "3" ["title"]=> string(6) "title3" ["body"]=> string(5) "body3" ["created"]=> string(19) "2017-04-04 21:25:43" ["modified"]=> NULL } } [3]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "4" ["title"]=> string(6) "title4" ["body"]=> string(5) "body4" ["created"]=> string(19) "2017-04-08 15:48:21" ["modified"]=> NULL } } [4]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "5" ["title"]=> string(0) "" ["body"]=> string(0) "" ["created"]=> string(19) "2017-04-08 16:14:08" ["modified"]=> NULL } } [5]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "6" ["title"]=> string(6) "title6" ["body"]=> string(5) "body6" ["created"]=> string(19) "2017-04-08 16:14:08" ["modified"]=> NULL } } [6]=> array(1) { ["Post"]=> array(5) { ["id"]=> string(1) "7" ["title"]=> string(6) "title7" ["body"]=> string(5) "body7" ["created"]=> string(19) "2017-04-08 16:14:08" ["modified"]=> NULL } } }

Попытка сделать скрипт для показа рейтинга популярности. Мне очень нравится слышать о некоторых замечательных намеках и образцах от вас!

 <h1>Popular Ranking posts</h1>
<?php $k = 1; ?>
<?php for($i = 0; $i <= count($posts); $i++) { ?>
<ul>
<?php if (!empty($posts[$i]['Post']['body'])) { ?>
<h2><?php echo $posts[$i]['Post']['title']; ?></h2>
<li>
<?php
echo $posts[$i]['Post']['body'];
?>
</li>
//Want to show the number 2 in $k even though the 2nd body data is missing(Currently 3rd data).
<h3 class="ranking_number"><?php echo $k;  ?></h3>
<?php } else {
continue;
}?>
</ul>
<?php $k++; } ?>

0

Решение

 <h1>Popular Ranking posts</h1>
<?php $k = 1; ?>
<?php for($i = 0; $i <= count($posts); $i++) { ?>
<ul>
<?php if (!empty($posts[$i]['Post']['body'])) { ?>
<h2><?php echo $posts[$i]['Post']['title']; ?></h2>
<li>
<?php
echo $posts[$i]['Post']['body'];
?>
</li>
//Want to show the number 2 in $k even though the 2nd body data is missing(Currently 3rd data).
<h3 class="ranking_number"><?php echo $k;  ?></h3>
<?php $k++; } ?>
<?php } else {
continue;
}?>
</ul>

я переехал $k++; Внутри ifнезадолго до else

Что делал ваш код:

  • Задавать $k до 1.
  • Пост 1 не пустой, поэтому покажите его (ранг 1).
  • Увеличение $k на 1
  • Перейти к следующему сообщению
  • Пост 2 пуст, поэтому не показывайте его (ранг 2).
  • Увеличение $k на 1

Давай остановимся там. Ваш $k был увеличен с каждым постом, даже пропущенным, поэтому третья позиция была 3-ей, а не 2-й.

Что делает мой код:

  • Задавать $k до 1.
  • Пост 1 не пустой, поэтому покажите его (ранг 1).
  • Увеличение $k на 1
  • Перейти к следующему сообщению
  • Пост 2 пуст, поэтому не показывайте его (ранг 2).
  • Перейти к следующему сообщению
  • Пост 3 не пустой, так что покажите его (по-прежнему ранг 2).

Я надеюсь, что помог.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]