je n'arrive pas a utiliser while deux fois dans ma page

Par stive flash, il y a 6 ans


Base de données MySQL

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

je veux utiliser fetch plusieurs fois sur la meme requete

<?php $bdd = new PDO("mysql:host=localhost;dbname=burgercode;charset=utf8","root","",array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $requet = $bdd->query('SELECT c.name AS onglet,i.name,i.description,i.image,i.price FROM categories AS c INNER JOIN items AS i ON c.id = i.category'); ?> <!DOCTYPE html> <html> <head> <title>Burger Code</title> <meta charset="utf-8" name="viewport" content="width=device-width,initial-scale=1"> <!-- jquery--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script> <!-- bootstrap--> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <!--icone--> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <!--css--> <link href="css/styles.css" rel="stylesheet"> <!--font--> <link href="https://fonts.googleapis.com/css?family=Holtwood+One+SC&display=swap" rel="stylesheet"> </head> <body> <div class="container site"> <h1 class="text-logo"><i class="fas fa-utensils"></i> Burger Code <i class="fas fa-utensils"></i></h1> <nav> <ul class="nav nav-pills" id="myTab" role="tablist" > <li class="nav-item" > <a href="#menus" class="nav-link active" data-toggle ="pill">Menus</a> </li> <li class="nav-item"> <a href="#burger" class="nav-link" data-toggle="pill">Burgers</a> </li> <li class="nav-item"> <a href="#snack" class="nav-link" data-toggle ="pill">snack</a> </li> <li class="nav-item"> <a href="#salade" class="nav-link" data-toggle ="pill">salade</a> </li> <li class="nav-item"> <a href="#boisson" class="nav-link" data-toggle ="pill">boisson</a> </li> <li class="nav-item"> <a href="#desserts" class="nav-link" data-toggle ="pill">desserts</a> </li> </ul> </nav> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" role="tabpanel" id="menus"> <div class="row"> <?php while($donnees = $requet->fetch()){ if($donnees["onglet"] == "Menus"){ ?> <div class="col-md-6 col-lg-4 my-3"> <div class="rounded bg-light"> <img src="images/<?php echo $donnees['image']; ?>" alt="ok" style="width:100%"> <div class="price"><?php echo $donnees['price']; ?> dt</div> <div class="caption"> <h4><?php echo $donnees['name']; ?></h4> <p><?php echo $donnees['description']; ?></p> <a href="#" class="btn btn-order" role="button"><i class="fas fa-shopping-cart"></i> commander</a> </div> </div> </div> <?php } } $requet->closeCursor(); ?> </div> </div> <div class="tab-pane fade" id="burger" role="tabpanel"> <div class="row"> <?php while($donnees1 = $requet->fetch()){ if($donnees1["onglet"] == "Burgers"){ ?> <div class="col-md-6 col-lg-4 my-3"> <div class="rounded bg-light"> <img src="images/<?php echo $donnees1['image']; ?>" alt="ok" style="width:100%"> <div class="price"><?php echo $donnees1['price']; ?></div> <div class="caption"> <h4><?php echo $donnees1['name']; ?></h4> <p><?php echo $donnees1s['description']; ?></p> <a href="#" class="btn btn-order" role="button"><i class="fas fa-shopping-cart"></i> commander</a> </div> </div> </div> <?php } } ?> </div> </div> </div> </div> </body> </html>

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

la premiere boucle fonctionne très bien mais la deuxieme ne me retourne rien

4 réponses

Carouge10, il y a 6 ans

Bonsoir,

d'où sort $donnees1 ?
Tu peux passer par un fetchAll puis tu fais un foreach sur le résultat

stive flash, il y a 6 ans

Ok j'essaie

stive flash, il y a 6 ans

merci beaucoup tout marche bien...mais pourquoi ca ne passe pas avec while?

stive flash, il y a 6 ans

merci beaucoup tout marche bien...j'aimerais comprendre pourquoi ca ne passe pas avec un while