Problème d'affichage des données dans un tableau HTML

Résolu/Fermé
David - Modifié le 11 janv. 2023 à 00:46
 David - 11 janv. 2023 à 01:12

Bonjour,

Bonjour,

Je n'ai pas d'erreur quand je lance la page de mon projet (panier.php), mais les données n'apparaissent pas dans les lignes du tableau HTML. Pourtant quand je rentre la requête dans mon logiciel de base données, il n'y a pas d'erreur.
Le problème doit venir de ma bouclee mais je ne sais pas exactement ce qui ne va pas.

J'espère que vous pourrez m'aider.

Merci d'avance

Voici le code de la page (panier.php) :

<?php
    include("header.php");
    require("config/commandes.php");
    require("config/connexion.php");

    if(!isset($_SESSION)){
        session_start();
    }
    if(!isset($_SESSION["panier"])){
        $_SESSION['panier'] = array();
    }
    var_dump($_SESSION);
    // unset($_SESSION["panier"]);
?>
<div class="container mb-4">
    <div class="row">
        <div class="col-12">
            <div class="table-responsive">
                <table class="table table-striped">
                    <thead>
                        <tr>
                            <th scope="col"></th>
                            <th scope="col">Produit</th>
                            <th scope="col" class="text-center">Quantité</th>
                            <th scope="col" class="text-right">Prix</th>
                            <th> </th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                            $ids = array_keys($_SESSION["panier"]);
                            $products = $access->prepare('SELECT id, image, nom, prix FROM produits WHERE id IN('.implode(',',$ids).')');
                            $products->execute();
                            $products->fetchAll(PDO::FETCH_OBJ);
                            echo "<br>";
                            print_r($products);
                            echo "<br>";
                            print_r($ids);
                            foreach($products as $product): 
                        ?>
                        <tr>
                            <td><img src="<?= $product->image ?>" style="width: 15%"></td>
                            <td><?= $product->nom ?></td>
                            <td><input class="form-control" type="text" value="1" />1</td>
                            <td class="text-right"><?= $product->prix ?>€</td>
                            <td class="text-right"><button class="btn btn-sm btn-danger">Supprimer</button> </td>
                        </tr>
                        <?php endforeach; ?>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td><strong>Total</strong></td>
                            <td class="text-right"><strong>346,90 €</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="col mb-2">
            <div class="row">
                <div class="col-sm-12  col-md-6">
                    <a href="index.php"><button class="btn btn-block btn-light">Liste des produits</button></a>
                </div>
                <div class="col-sm-12 col-md-6 text-right">
                    <button class="btn btn-block btn-light">Valider</button>
                </div>
            </div>
        </div>
    </div>
</div>
<?php
    require("footer.php");
?>


Windows / Chrome 108.0.0.0

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
11 janv. 2023 à 00:48

Bonjour,

Que t'affichent tes print_r ?

 print_r($products);
 print_r($ids);

Ensuite, vu que tu utilises PDO, appliques les conseils donnés ici : 

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

.


0

Merci, j'ai réussi à le résoudre. 

Pour pouvoir manipuler le résultat du fetchAll je dois le mettre dans une variable comme ceci :

$result = $products->fetchAll(PDO::FETCH_OBJ);

Je devais régler ce petit problème.

Encore dsl de t'avoir déranger.

Bonne soirée ou Bonne journée ! 

0