function category_children($id_parent = 0, $level = 1, $db_connexion) { static $last; $statement = $db_connexion->prepare("SELECT * FROM categorie where id_parent=:parent AND niveau=:niveau;"); $statement->execute(array(":parent" => $id_parent, ":niveau" => $level)); $categories = $statement->fetchAll(); $level++; if ($categories) { foreach ($categories as $key => $categorie) { // répéte autant de fois la chaine '═' $plus = "├" . str_repeat('─', $level - 1); if ($level == 2 && $key === 0) { $plus = str_replace("├", "┌", $plus); } echo "<li>" . $plus . " <a href='" . $_SERVER["PHP_SELF"] . "?id=" . $categorie["id_categorie"] . "'>" . utf8_encode($categorie["nom"]) . "</a></li>"; $query = "SELECT * FROM categorie WHERE id_parent=:id_categorie AND niveau=:level"; $statement = $db_connexion->prepare($query); $statement->bindParam(":id_categorie", $categorie["id_categorie"]); $statement->bindParam(":level", $level); // Liaison param :level , et $level $statement->execute(); // Execution de la requête préparée $results = $statement->fetchAll(); // Méthode fetch de l'objet statement if ($results) { category_children($categorie["id_categorie"], $level, $db_connexion); } else { $last = $categorie["id_categorie"]; } // Appel à la fonction d'une manière récursive } } }
<div class="left"><a href="index.php">logo</a></div> <div class="right"> <?php echo $out; ?> </div> </div> <?php $where = isset($_GET['id']) ? "where id_categorie =" . $_GET["id"] : " where 1"; echo "<div class='col-md-3'>\r\n <ul>"; try { $statement = $db_connexion->prepare("SELECT max(niveau) as max FROM categorie "); $statement->execute(); $level = $statement->fetch(); $maxLevel = $level["max"]; category_children(0, 1, $db_connexion); // niveau de départ } catch (PDOException $e) { echo $e->getMessage(); } echo "</ul>\r\n </div>"; echo "<div class='col-md-9'>"; if (isset($_GET["id"])) { // Recupperation de l'id produit $id = $_GET["id"]; $produit = edit_product($id, $db_connexion); if (isset($_POST["btn-cart"])) { // envoi du formulaire if (!empty($_POST["qty"]) && is_numeric($_POST["qty"])) { // Validation de qty doit etre numerique if (!isset($_SESSION["cart"])) {