Donc, dans la requête ci-dessous, je joins deux tables par order_id et j'affiche toutes les valeurs de la table user_orders.
Sur la base de l'image ci-dessous, j'ai essayé d'afficher uniquement les lignes order_Id qui correspondent à la table order_manager.
public function getUserOrder(){ $sql = "SELECT user_orders.order_id, user_orders.title, user_orders.price, user_orders.quantity FROM order_manager JOIN user_orders ON order_manager.order_id = user_orders.order_id;"; $stmt = $this->connect()->prepare($sql); $stmt->execute(); while ($result = $stmt->fetchAll()){ return $result; } }
J'ai essayé d'utiliser une instruction if qui semble faire quelque chose mais la valeur qu'elle donne ne correspond pas à l'ID de l'ordre inverse.
<div class="container mt-5"> <?php $artworks = new Artworks(); ?> <div class="row"> <div class="col-lg-12"> <table class="table table-dark"> <thead> <tr> <th scope="col">Order ID</th> <th scope="col">Full Name</th> <th scope="col">Phone</th> <th scope="col">Address</th> <th scope="col">Orders</th> </tr> </thead> <?php $artworks->getOrder(); foreach ($artworks->getOrder() as $art) { echo "<tbody> <tr> <td>$art[order_id]</td> <td> $art[full_name]</td> <td> $art[phone] </td> <td>$art[address]</td> <td> <table class= 'tale text-center table-dark'> <thead> <tr> <th scope='col'>Order ID</th> <th scope='col'>title</th> <th scope='col'>price</th> <th scope='col'>Quantity</th> </tr> <thead> <tbody> <tr>"; $artworks->getUserOrder(); foreach ($artworks->getUserOrder() as $order) { if ($order['order_id'] == $art['order_id']) { echo "<td>$order[order_id]</td>"; } echo " <td>$order[title]</td> <td>$order[price]</td> <td>$order[quantity]</td> </tr>"; } echo " </tbody> </table> </td> </tr> "; } ?> </tbody> </table> </div> </div> </div>
Voici une image pour aider à expliquer le résultat souhaité
Correction d'un problème lié au déplacement des éléments td dans les instructions if. Je suppose que c'est fondamentalement correct.