Bonjour,
voila la requête qui affiche mes données. Elle fonctionne très bien!


            <?php
            $L = '7';
            $sql = 'SELECT * FROM fiches WHERE etatFiche = 0 AND categorieFiche = 1 ORDER BY idFiche DESC';
            try{  
                $req = $DB->query($sql);
                while($fiches = $req->fetch()) {

            ?>
              <div class="col-12  col-sm-12  col-lg-<?php echo $L; ?> portfolio-item <?php echo $fiches['codeFiche']; ?> ">
                <div class="item"><a class="portfolio-img-link " href="#">
                    <div class="overlay overlay-color"></div><img class="portfolio-img  img-fluid " src="photos/<?php echo $fiches['idFiche']; ?>/1.jpg" alt="portfolio item photo"><i class="fas fa-arrow-right icon"></i></a>
                  <div class="item-info "><span class="info-title"><?php echo $fiches['titreFiche']; ?>   </span>
                    <ul class="tags-list">
                      <li class="tag-item"> <a class="tag-link" href="#"><?php echo $fiches['villeFiche']; ?></a></li>
                      <li class="tag-item"> <a class="tag-link" href="#"><?php echo $fiches['idFiche']; ?> </a></li>
                    </ul>
                  </div>
                </div>
              </div>
    <?php
                }
            }
            catch (PDOException $e){
            echo 'Requ&ecirc;te SQL rat&eacute;e!';
        }?>

Ce que je veux

Vous voyez ma variable $L ?
J'aimerais qu'à chaque tour de boucle elle change de valeur. Qu'elle se mette à 7 si elle est à 5 et qu'elle se mette à 5 si elle est à 7 après s'être affichée. $L n'a que deux valeurs possibles: 5 ou 7.

Si le while remonte 6 réponses par exemple, j'aimerais que sur la première réponse $L = 7, puis sur la deuxième réponse que $L = 5 puis que sur la troisième réponse que $L = 7 et ainsi de suite tant qu'il y a des réponses...
Ce que j'obtiens

Malgré le visionnage des tutos de Jonathan, je ne vois toujours pas comment faire. J'ai essayé avec for et foreach mais je n'y arrive pas.

Je peux avoir un coup de pouce svp?

Merci d'avance.

2 réponses


quenti77
Réponse acceptée

Hello,

Avec le code actuel tu peux dans le while faire :

$L = '7';
while($fiches = $req->fetch()) {
    $L = $L === '7' ? '5' : '7';
    // Le reste du code
}

Un simple ternaire

Hexa
Auteur

Yeah!
Merci beaucoup ça fonctionne parfaitement. En plus, j'étais vraiment pas loin de la réponse.
Tu crois qu'on peut corser un peu la chose en ayant: 5, 7, 7, 5, 7, 7, 5 etc...?