как выбирать элементы в счетчик while в php


Создал страницу администратора, где я пришел данных книг в базе данных. я сделал это html, где будет отображаться эти данные. массив будет потомства этот блок "cabtitulo" из всех книг, зарегистрированные на страницы администраторов, но я бы хотел, чтобы остался виден только 4 из этих блоков. поэтому ставлю там, внизу, функция background-color:green, чтоб проверить, если мой код работает, если все получится, я бы дисплей оставляя эти и другие блоки невидимыми. но все блоки становятся зелеными, не больше, чем 3, как установить.

<div class="cabtitulo"><p>Promoções</p></div>
<?php 
$comando="select * from tb_promocao";
$matriz=mysql_query($comando);
$contador = 0;

while ($contador<4) {
   while ($linha=mysql_fetch_array($matriz)) {
?>

<article class="livro">
      <?php echo '<img src="img/' .$linha["imagempromo"]. '.jpg">'; ?>
   <p><span class="titulo"><?php echo $linha["titulopromo"]; ?></span><br>
   <span class="precode">R$ <?php echo $linha["precodelivro"]; ?></span><span class="preco">R$ <?php echo $linha["precoparalivro"]; ?></span><br><br></p>
   <button>adicionar<i class="fa fa-shopping-cart" aria-hidden="true"></i></button>
   <a href="">ver mais</a>
      <h2><?php echo $contador; ?></h2>
</article>
<?php   
      $contador++;
   }//close matriz 

}//close contador    

while ($contador>=3) { 
   echo '<style> .livro{ background-color:green;}</style>';
}

?>
Author: Sam, 2017-12-30

2 answers

Все будет зеленый, потому что класс .livro будет распространяться на все <article class="livro">. Кроме того, что эта while, чтобы написать CSS не имеет смысла. Возможно if, но все же не является лучшей практикой.

Я предложил, вместо того чтобы сделать, как вы делаете, включите в свой CSS класс .livro:

.livro{
    background-color:green;
}

И while поставить проверку прямо в тег article, который будет добавить класс, если $contador больше или равно 3:

<article<?php if($contador>=3){echo ' class="livro"';} ?>>

Результат будет тегами:

<article class="livro">
 1
Author: Sam, 2017-12-30 23:54:18

Попытке сделать что-то вроде:

Создать класс, который будет устанавливать цвет:

.corContador { background-color: #0f0; }

Внутри цикла, проверить счетчик и назначить класса:

<div class="<?php $contador < 3 ? 'corContador' : '' ?>">
    <!-- seus dados -->
</div>
 0
Author: GustavoAdolfo, 2017-12-30 23:32:05